Symfony - 在外部JS文件中创建路由


Symfony - Create route in external JS File

我有一个外部.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>

注意:还有其他方法可以将模板放入所需的位置,但这是为了说明目的。