当我在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);
答案 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请求中。