使用Twig和Symfony2在javascript中生成路由

gre*_*emo 36 javascript routes symfony twig

很奇怪的问题,抱歉,我对Symfony/Twig很新.我的路线需要强制region_id参数:

ajax_provinces_by_region:
  pattern: /ajax/region/{region_id}/provinces
  defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion }
  requirements: {region_in: \d+}
Run Code Online (Sandbox Code Playgroud)

问题是:我怎么能生成基于这一路线select元素在JavaScript(下面的代码)?

问题是:我不能使用path,并url因为它们需要指定从symfony辅助region_id参数(this.value)无法访问,因为它是一个JavaScript变量(和嫩枝编译服务器端).

$(document).ready(function() {
    $('select#regions').change(function(){

        // Make an ajax call to get all region provinces
        $.ajax({
            url: // Generate the route using Twig helper
        });

    });
});
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 73

我知道这是一个老问题,但是如果你不想安装像FOSJsRoutingBundle这样的软件包,这里有点破解:

var url = '{{ path("yourroute", {'region_id': 'region_id'}) }}'; 
url = url.replace("region_id", this.value);
Run Code Online (Sandbox Code Playgroud)

'region_id'仅用作占位符,然后在JS中用实际变量this.value替换它


igo*_*orw 46

您可以使用FOSJsRoutingBundle.

  • Routing.generate( 'ROUTE_NAME') (2认同)