使用 Twig 路径的 Ajax url 参数

2022-01-22 00:00:00 javascript symfony ajax twig

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

i have a problem in my twig view when i pass params in the ajax url path, logically twig is executed before javascript so he didnt recognize the input value passed as parameter. Is there a solution to do this without passing the param in data ?

 <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);

推荐答案

你应该使用 FOSJsRoutingBundle这.它的接口与 Twig {{ path() }} 相似甚至可能相同,并且只允许您将一小部分路由公开给 Javascript.

You should use the FOSJsRoutingBundle for this. It has an interface that is similar or maybe even identical to the Twig {{ path() }} and allows you to only expose a small part of the routes to Javascript.

然后您的 js 实现将能够生成路由 如您在文档中所见.

Your js implementation then will be able to generate routes as you can see in the documentation.

相关文章