从外部文件调用 js 函数 Symfony Twig
Call js function from external file Symfony Twig
我在 Symfony 4.4 中从树枝视图调用函数时遇到问题。此视图称为 UserList.html.view 并扩展了 base.html.twig
文件开头如下:
{% extends 'base.html.twig' %}
{% block body %}
{% block javascripts %}
<script src="{{ asset('build/js/custom.js') }}"></script>
...
我也尝试通过添加条目来使用 Encore,但它不起作用。访问外部函数的唯一方法是从父视图调用它们,这显然不是我想要的。
我得到的错误:
Uncaught ReferenceError: coucou is not defined
at HTMLButtonElement.onclick (VM3883 manageAccounts:183)
onclick @ VM3883 manageAccounts:183
我阅读了一些关于此的其他帖子,但其中 none 实际上提供了一个可行的解决方案。
感谢您的帮助!
您好,欢迎来到 SO 论坛。很难根据提供的代码片段来解决您的问题 - 但 twig 块的使用可能没有像您假设的那样实现/工作。也就是说,已实现的主体块内的 javascript 块与基本模板中的类似命名块无关(我假设那里有类似命名的块),因为它被放置在您完全覆盖的主体块内这个 UserList.html.twig
模板。
一个基本的工作树枝结构应该是这样的:
base.html.twig
<html>
<head>
...
</head>
<body>
...
{% block body %}
...
{% endblock %}
...
{% block javascripts %}
...
{% endblock %}
...
</body>
</html>
UserList.html.twig - 请注意 parent()
调用确保继承模板中的块内容也包含在内(即,如果您有一些通用的 jquery 或其他一些generic js includes defined there) - 如果没有 parent()
,您将在此模板中再次完全定义 javascripts 块内容。
{% extends 'base.html.twig' %}
{% block body %}
...
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('build/js/custom.js') }}"></script>
{% endblock %}
我希望在这个困难时期每个人都过得很好!法国上周开始遏制,所以我有足够的时间寻找解决方案。
有史以来最愚蠢的事情,但我不知道..
在你的 js 外部文件中,你必须像这样声明你的函数:
window.myfunction = function myfonction(){}
就这些了..
这可能会导致安全问题吗?我不知道所以我问 xD
我在 Symfony 4.4 中从树枝视图调用函数时遇到问题。此视图称为 UserList.html.view 并扩展了 base.html.twig
文件开头如下:
{% extends 'base.html.twig' %}
{% block body %}
{% block javascripts %}
<script src="{{ asset('build/js/custom.js') }}"></script>
...
我也尝试通过添加条目来使用 Encore,但它不起作用。访问外部函数的唯一方法是从父视图调用它们,这显然不是我想要的。
我得到的错误:
Uncaught ReferenceError: coucou is not defined at HTMLButtonElement.onclick (VM3883 manageAccounts:183) onclick @ VM3883 manageAccounts:183
我阅读了一些关于此的其他帖子,但其中 none 实际上提供了一个可行的解决方案。
感谢您的帮助!
您好,欢迎来到 SO 论坛。很难根据提供的代码片段来解决您的问题 - 但 twig 块的使用可能没有像您假设的那样实现/工作。也就是说,已实现的主体块内的 javascript 块与基本模板中的类似命名块无关(我假设那里有类似命名的块),因为它被放置在您完全覆盖的主体块内这个 UserList.html.twig
模板。
一个基本的工作树枝结构应该是这样的:
base.html.twig
<html>
<head>
...
</head>
<body>
...
{% block body %}
...
{% endblock %}
...
{% block javascripts %}
...
{% endblock %}
...
</body>
</html>
UserList.html.twig - 请注意 parent()
调用确保继承模板中的块内容也包含在内(即,如果您有一些通用的 jquery 或其他一些generic js includes defined there) - 如果没有 parent()
,您将在此模板中再次完全定义 javascripts 块内容。
{% extends 'base.html.twig' %}
{% block body %}
...
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('build/js/custom.js') }}"></script>
{% endblock %}
我希望在这个困难时期每个人都过得很好!法国上周开始遏制,所以我有足够的时间寻找解决方案。
有史以来最愚蠢的事情,但我不知道..
在你的 js 外部文件中,你必须像这样声明你的函数:
window.myfunction = function myfonction(){}
就这些了..
这可能会导致安全问题吗?我不知道所以我问 xD