我有一个外部.js文件,我在其中放置了我所有的ajax函数,例如
$.getJSON(HVZ_priceCityAjax, {
rating: rating.val(),
comment: comment.val(),
name: name.val(),
returnTo: returnTo.val()
})
.done(function (data) {
});
我希望URL由Symfony路由创建,直接在.js文件中,如下所示:
$.getJSON('{{ path('ajaxPriceCity') }}', {
...
这可能吗?FOSJsRoutingBundle 不适用于 Symfony3。
我目前的方式:
在所有页面上(定义它们并避免"未定义"错误):
<script>
HVZ_priceCityAjax = false;
HVZ_priceZipAjax = false;
moreRules = false;
...
</script>
在需要该功能的页面上:
<script>
HVZ_priceCityAjax = '{{ path('ajaxPriceCity') }}';
</script>
这是我想出的唯一解决方案,但这似乎不是很有效。
有没有另一种方法,没有FOSJsRoutingBundle?
您需要做的就是将js文件制作为模板。
someJavascript.js.twig
$.getJSON('{{ path('ajaxPriceCity') }}', {
...
然后,包括它:
<script>
{{ include('someJavascript.js.twig') }}
</script>
注意:还有其他方法可以将模板放入所需的位置,但这是为了说明目的。