Symfony2:如何在javascript中获取当前路由?

lva*_*yut 2 javascript ajax jquery symfony

我正在使用Ajax更改页面中的数据.所以,我想知道当前路由是什么,以便调用不同的功能.我已阅读用于检索当前URL许多解决方案,并获得在当前路线ControllerTwig.然而,是否有任何可能的方式来实现这一目标javascript还是jQuery

$(document).ready(function(){
    $('#form_patient').change(function(){
        var id = $(this).val();
        // Get the current route
        var route = ??;  // <----------------Want to get the current route
        if(route === 'route1'){
            functionForRoute2(id,route)
        }
        else{
            functionForRoute2(id,route);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

**的功能Route1**

function functionForRoute1(id,route){
    $.ajax({
        type: "POST",
        url: Routing.generate(route),
        data: JSON.stringify({id:id}),
        dataType: "json",
        success: function(data){
            // Execute some specific data for route1
        },
        error: function(XMLHttpRequest, textStatus, errorThrown)
        {
            alert('Error : ' + errorThrown);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

**的功能Route2**

function functionForRoute2(id,route){
    $.ajax({
        type: "POST",
        url: Routing.generate(route),
        data: JSON.stringify({id:id}),
        dataType: "json",
        success: function(data){
            // Execute some specific data for route2
        },
        error: function(XMLHttpRequest, textStatus, errorThrown)
        {
            alert('Error : ' + errorThrown);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

Tro*_*ike 5

我要做的是在html标签中输出路线(你想要的任何路线),例如(twig版本):

<div id="my-route" data-route"{{ path("my_route") }}"></div>
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中我将通过jquery像这样检索该路由:

$(document).ready(function(){
    $('#form_patient').change(function(){
        var id = $(this).val();

        var route = $('my-route').data('route');       
    });
});
Run Code Online (Sandbox Code Playgroud)

您还可以将路径("my_route")更改为具有路径名称的字符串,然后执行if/else语句.但是我不认为这是一个好主意,好像你的路线名称改变了,那么你的代码也会受到影响