[英]Symfony2 - execute TWIG inside JS events
我在<script>
标签中看到很多将twig赋值给JS变量的例子,所以我决定在click
事件中调用twig函数,但不幸的是,无论是否点击,它仍然在执行TWIG
代码。
$(document).ready(function() {
$('#sign_up_trainee .btn-social').click(function() {
{{ app.session.set('name', 'value1') }}
});
$('#sign_up_company .btn-social, #sign_up_university .btn-social').click(function() {
{{ app.session.set('name', 'value2') }}
});
});
最后,当页面加载时,它正在执行树枝,名称为“name”的会话被设置为“value2”。 Twig 在执行 JS 之前呈现方式。 任何想法如何在 JS 中正确执行树枝?
你误解了树枝的用途。 Twig 是一种模板语言。
这意味着它在将输出发送到浏览器之前在服务器上运行。 在返回之前,您将使用它来模板化一些 JS。
如果使用正确(模板在 xxx.js.twig 文件上运行),则树枝“代码”甚至根本不会出现在客户端浏览器的文件中。
正如你自己所说的twig
在JS
之前执行。 Twig
本身被编译成PHP
,因此在离开服务器之前被解释。
您唯一可以传递给JS
本身的是评估方法并将它们存储为变量,也就是说,如果您将它们放在您的twig
文件中,例如:
<script>
var current_date = '{{ "now" | date('d-m-Y') }}';
</script>
执行twig
方法并获得正确响应的唯一正确方法是使用 ajax 调用调用控制器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.