javascript - js文件中的 Twig 代码

标签 javascript symfony twig

将 symfony2 与 twig 模板一起使用,我通常使用嵌入在 *html.twig 文件中的 js 来动态化更多页面。

如果我的页面附加了外部 JS 文件怎么办?我如何在其中引入 twig 代码?

我知道这听起来有点陈旧,但当尝试从 javascript 重定向到已知的 symfony 路径时,它并没有那么多。就像这样:

$.post("{{ path('_check_coupon') }}",{code: coupon_code}, function(json) {
    // do whatever...
});

如您所见,我在一个完整的独立 js 文件中有一个对已知路径 "_check_coupon" 的 ajax 调用。

有什么想法可以解决这个问题吗?

提前致谢

最佳答案

您可以将这样的路径嵌入到 DOM 元素的 data-path 属性中,例如:

<div id="widget" data-path="{{ path('_check_coupon') }}"> ... </div>

然后直接获取它:

$.post( $('#widget').data('path') ,{code: coupon_code}, function(json) {
    // do whatever...
});

这是一种普通的方法,但比将 js 和 twig 混合在一个文件中更易于维护——至少你不会得到语法高亮。

当然,如果您正在处理表单,只需获取表单的 action 属性即可。


无论如何,我建议您不要在同一页面上同时使用 JS 和标记:您将无法缓存脚本,也无法缩小它们,因此请考虑将它们解耦,除非只涉及非常少的行。欢迎查看my little library about .

关于javascript - js文件中的 Twig 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448337/

相关文章:

javascript - 为禁用 javascript 的用户编写不同的功能是否值得?

javascript - 如何使用 AJAX 在 javascript 变量中发布数据

configuration - 使用 Symfony2 配置类,如何定义其子节点没有键的数组节点?

php - Symfony Doctrine 迁移错误

php - Symfony:扩展原始 AppBundle 模板文件

php - Slim Framework -> 创建 XML 输出

php - Symfony 表单 : disable "required" for a field from Twig

javascript - 为什么空数组等于 false?

javascript - 显示图像更改 URL,无需重新加载页面

php - 如何访问Shopware中的数据库层?