我在 Symfony 4.4 中从 twig View 调用函数时遇到问题。该 View 称为 UserList.html.view,它扩展了 base.html.twig
文件的开头如下:
{% extends 'base.html.twig' %}
{% block body %}
{% block javascripts %}
<script src="{{ asset('build/js/custom.js') }}"></script>
...
我还尝试通过添加条目来使用 Encore,但它不起作用。访问外部函数的唯一方法是从父 View 调用它们,这显然不是我想要的。
我得到的错误:
Uncaught ReferenceError: coucou is not defined at HTMLButtonElement.onclick (VM3883 manageAccounts:183) onclick @ VM3883 manageAccounts:183
我读了一些有关此问题的其他帖子,但没有一个真正提供了可行的解决方案。
感谢您的帮助!
最佳答案
您好,欢迎来到 SO 论坛。根据提供的代码片段很难确定您的问题 - 但 Twig block 的使用可能没有像您想象的那样实现/工作。也就是说,实现的 body block 内的 javascript block 与基本模板中类似命名的 block 没有相关性(我假设那里有类似命名的 block ),因为它放置在您在此 中完全覆盖的 body block 内UserList.html.twig
模板。
基本的工作 Twig 结构如下所示:
base.html.twig
<html>
<head>
...
</head>
<body>
...
{% block body %}
...
{% endblock %}
...
{% block javascripts %}
...
{% endblock %}
...
</body>
</html>
UserList.html.twig - 请注意 parent()
调用,它确保也包含继承模板中的 block 内容(即,如果您有一些通用的 jquery 或其他通用的js 包含在那里定义的) - 如果没有 parent()
,您将在此模板中再次完全定义 javascripts block 内容。
{% extends 'base.html.twig' %}
{% block body %}
...
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('build/js/custom.js') }}"></script>
{% endblock %}
关于javascript - 从外部文件调用 js 函数 Symfony Twig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60590352/