将 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/