【问题标题】:Symfony - Create route in external JS FileSymfony - 在外部 JS 文件中创建路由
【发布时间】:2016-02-03 10:30:13
【问题描述】:

我有一个外部 .js 文件,我在其中放置了所有 ajax 函数,例如

        $.getJSON(HVZ_priceCityAjax, {
            rating: rating.val(),
            comment: comment.val(),
            name: name.val(),
            returnTo: returnTo.val()
        })
        .done(function (data) {

        });

我希望通过 Symfony 路由直接在 .js 文件中创建 URL,如下所示:

        $.getJSON('{{ path('ajaxPriceCity') }}', {
        ...

这可能吗? FOSJsRoutingBundle 不适用于 Symfony3

我现在的方式:

在所有页面上(定义它们并避免“未定义”错误):

<script>
   HVZ_priceCityAjax = false;
   HVZ_priceZipAjax = false;
   moreRules = false;
   ...
</script>

在需要该功能的页面上:

<script>
   HVZ_priceCityAjax = '{{ path('ajaxPriceCity') }}';
</script>

这是我想出的唯一解决方案,但似乎效率不高。

还有没有 FOSJsRoutingBundle 的其他方法?

【问题讨论】:

    标签: javascript php symfony


    【解决方案1】:

    你需要做的就是把你的js文件变成一个模板。

    someJavascript.js.twig

    $.getJSON('{{ path('ajaxPriceCity') }}', {
        ...
    

    然后,包含它:

    <script>
        {{ include('someJavascript.js.twig') }}
    </script>
    

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

    【讨论】:

    • 我必须将 .js.twig 文件放在哪里?目前它在我的 web/assets/... 和其他 js 文件中。但这给了我Unable to find template "assets/vendor/hvz-main/js/frontend.js.twig"
    • 我会把它放在你其他模板所在的地方。保持整洁
    猜你喜欢
    • 2017-04-29
    • 2013-07-26
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多