从 Twig 调用 JavaScript 函数
Call JavaScript function from Twig
我正在开发一个 Symfony2 项目,我想调用一个 JavaScript 函数并从 Twig 传递一个 JSON 对象数组(我从控制器获取)。
但是第一个非常简单的测试已经失败,例如:
main.js:
function helloWorld(name) {
console.log("hello " + name);
}
链接到 twig 中的 main.js 并调用函数:
<body>
<script>helloWorld("world!")</script>
{% block javascripts %}
<script src="{{ asset('js/main.js') }}"></script>
{% endblock %}
</body>
这会导致 ReferenceError:
"Uncaught ReferenceError: helloWorld is not defined"
我需要做哪些不同的事情才能完成这项工作?
编辑:感谢两位花时间回答的人。所描述的树枝实际上由一堆嵌套的树枝组成,javascript 包含的位置基于 Symfony documentation,我想这就是为什么我没有看到明显的原因。虽然在表述问题时应该自己发现问题....
带有helloWorld
定义的脚本放在函数执行之后。这意味着 JavaScript 还不知道函数并触发此错误。
解决方案:将您的 javascript 放在您的导入下方(例如 </body>
之前,在 javascripts 块中)或将导入放在页面 javascript 之前(例如在头部)。
颠倒函数的顺序:
<body>
{% block javascripts %}
<script src="{{ asset('js/main.js') }}"></script>
{% endblock %}
<script>helloWorld("world!")</script>
</body>
我正在开发一个 Symfony2 项目,我想调用一个 JavaScript 函数并从 Twig 传递一个 JSON 对象数组(我从控制器获取)。
但是第一个非常简单的测试已经失败,例如:
main.js:
function helloWorld(name) {
console.log("hello " + name);
}
链接到 twig 中的 main.js 并调用函数:
<body>
<script>helloWorld("world!")</script>
{% block javascripts %}
<script src="{{ asset('js/main.js') }}"></script>
{% endblock %}
</body>
这会导致 ReferenceError:
"Uncaught ReferenceError: helloWorld is not defined"
我需要做哪些不同的事情才能完成这项工作?
编辑:感谢两位花时间回答的人。所描述的树枝实际上由一堆嵌套的树枝组成,javascript 包含的位置基于 Symfony documentation,我想这就是为什么我没有看到明显的原因。虽然在表述问题时应该自己发现问题....
带有helloWorld
定义的脚本放在函数执行之后。这意味着 JavaScript 还不知道函数并触发此错误。
解决方案:将您的 javascript 放在您的导入下方(例如 </body>
之前,在 javascripts 块中)或将导入放在页面 javascript 之前(例如在头部)。
颠倒函数的顺序:
<body>
{% block javascripts %}
<script src="{{ asset('js/main.js') }}"></script>
{% endblock %}
<script>helloWorld("world!")</script>
</body>