【问题标题】:how to render twig {{path('')}} call as jquery ajax url如何将树枝 {{path('')}} 调用渲染为 jquery ajax url
【发布时间】:2013-03-16 11:15:16
【问题描述】:

我正在使用来自模态框的 ajax 请求将数据保存在我的 symfony2 应用程序中。当模态框被调用时,模态标记被渲染。所以我不能在模态框标记的任何地方使用“”符号。

我的代码是:

var path = {{ path('_inserttask') }};
    $.ajax({
        type: 'POST',
        url: path,
        data: { myid: 123456 },
        success: function(data) {
            $('#mask , .login-popup').fadeOut(300 , function() {
                $('#mask').remove();
            });
        }
    });

调用 ajax 时会在控制台中报错。我发现如果我使用硬编码的 url - 它可以工作!但是使用 {{ path('_inserttask') }} 作为 url 会出错。我知道这是我没有使用的引号。如何解决问题?它已经杀死了 2 个小时 :-(

【问题讨论】:

  • 你试过了吗? var path = '{{ path('_inserttask') }}';
  • @KernelFolla,是的,它给出了语法错误。可能是某种带有 htmlentities 的解决方案或不计入引号的解决方案。

标签: jquery symfony twig


【解决方案1】:

从我上面看到的你没有在路径变量的值上加上双引号。试试这个 -

var path = "{{ path('_inserttask') }}";
$.ajax({
    type: 'POST',
    url: path,
    data: { myid: 123456 },
    success: function(data) {
        $('#mask , .login-popup').fadeOut(300 , function() {
            $('#mask').remove();
        });
    }
});

再想一想,您正在将此脚本嵌入到 twig 模板中,该模板稍后将呈现为 html,然后发送到浏览器,对吗?如果是,我认为上述更改将解决问题。

如果您尝试在纯 javascript 文件中使用 twig。我不认为它会起作用。如果你这样做。我认为您尝试将路径值放在 html 中,然后使用 javascript 获取该值,然后改为调用 ajax。例如。我会选择将该路径 url 嵌入到 div 的属性之一中。

在我的 twig 模板文件中(例如 index.html.twig)

<div id="abc" data-path="{{path('_inserttask')}}">
</div>

在我的 javascript 文件中(例如 abc.js)

var path = $("#abc").attr("data-path");
$.ajax({
    type: 'POST',
    url: path,
    data: { myid: 123456 },
    success: function(data) {
        $('#mask , .login-popup').fadeOut(300 , function() {
            $('#mask').remove();
        });
    }
});

【讨论】:

  • 哇!单引号&lt;div id="abc" data-path="{{path('_inserttask')}}"&gt; &lt;/div&gt; 这就像魅力一样。对于您的第一个解决方案,我已经提到我不能在此处添加“”,因为它会导致语法错误。但是,非常感谢您的解决方案。我现在没有投票权,否则我会投票给你!
  • 没问题@HimelNagRana。我以前遇到过这个问题。但我不太确定,这是否正确。
  • 非常感谢您的回复!我为此苦苦挣扎了好几个小时!
猜你喜欢
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
相关资源
最近更新 更多