javascript - 从外部文件调用 js 函数 Symfony Twig

标签 javascript symfony twig symfony4

我在 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/

相关文章:

javascript - 尝试获取 HTML 内容时被阻止

javascript - 如何使用原型(prototype)方法更改类中的值?

javascript - 在 JavaScript 中使用 InstanceOf 和原型(prototype)继承

php - 找不到 Symfony2 管理员登录路由配置

php - 如何使用 Doctrine 创建内连接?

php - symfony2 : form errors not displayed in twig despite a non null getErrorsAsString()

javascript - 如何删除回车键功能

php - Doctrine2 是否应用过滤器来删除语句

php - Twig_SimpleFunction 可以修改上下文吗?

database - Symfony2中如何显示多个数据集