使用Twig路径的Ajax url parametetr

时间:2016-02-26 13:31:24

标签: javascript ajax symfony twig

当我在ajax url路径中传递params时,我的树枝视图中出现问题, 逻辑上twig在javascript之前执行,所以他没有识别作为参数传递的输入值。有没有在数据中传递参数的情况下执行此操作的解决方案?

 <script type="text/javascript" charset="UTF-8">
(function($) {

    var $projectField = $('#project-field-container');

    $projectField.on('change', function() {
        var id_project = $(this).val();
        if('' != id_project) {
            $.ajax({
                url: {{ path('project_field', {'id_project': id_project})}},
                success: function (data) {
                    var content = $('select', data.contentHTML).html();
                    $projectField.html(content).trigger('change');
                }
            });
        } else {

        }
    });
})(jQuery);

2 个答案:

答案 0 :(得分:1)

您应该使用FOSJsRoutingBundle。它有一个与Twig {{ path() }}类似甚至相同的界面,允许您只将一小部分路径暴露给Javascript。

然后,您的js实现将能够生成路由as you can see in the documentation

答案 1 :(得分:1)

也许您可以尝试将twig语句分配给js变量(在调用ajax之前),如下所示:

var path = {{ path('project_field', {'id_project': id_project})}};

然后使用

url: path
在你的ajax请求中