繁体   English   中英

Symfony2 - 在 JS 事件中执行 TWIG

[英]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 文件上运行),则树枝“代码”甚至根本不会出现在客户端浏览器的文件中。

正如你自己所说的twigJS之前执行。 Twig本身被编译成PHP ,因此在离开服务器之前被解释。

您唯一可以传递给JS本身的是评估方法并将它们存储为变量,也就是说,如果您将它们放在您的twig文件中,例如:

<script>
    var current_date = '{{ "now" | date('d-m-Y') }}';
</script>

执行twig方法并获得正确响应的唯一正确方法是使用 ajax 调用调用控制器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM