Вызов функции из внешнего файла JavaScript в href с Symfony и Twig - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь вызвать функцию из внешнего файла JavaScript в href с Symfony и Twig.

Вот мой файл JavaScript pm.js:

function test(id) {
    alert(id);
}

И вотмой шаблон:

{# templates/pm/pm.html.twig #}
{% extends 'base.html.twig' %}

{% block title %}{{ parent() }} | Private messaging{% endblock %}

{% block body %}
    (...)
    <a href="javascript:test({{ message.id }});">test</a>
    (...)
{% endblock %}

{% block javascripts %}
    {{ parent() }}
    <script src="{{ asset('build/js/pm.js') }}"></script>
{% endblock %}

Как я могу это сделать?Спасибо за помощь.

1 Ответ

0 голосов
/ 25 сентября 2018

Это происходит потому, что вы используете скомпилированный pm.js файл javascript (поэтому, я думаю, он находится в build/js).Если вы просто поместили pm.js в свою общедоступную папку js без компиляции, ваш код будет хорошо работать, как есть.

Ваша проблема в том, что ваша функция после компиляции не является глобальной функцией.Вы можете преодолеть это несколькими способами, самый простой из которых:

window.test = function test(id) {
    alert(id);
}

Просто назначьте свою функцию test () для переменной окна window.test, и она будет работать.

...