javascript - Symfony2 : How to get the current route in javascript?

标签 javascript jquery ajax symfony

我正在使用 Ajax 更改页面中的数据。所以,我想知道调用不同函数的当前路由是什么。我已经阅读了许多用于检索当前 url 以及在 ControllerTwig 中获取当前路由的解决方案。但是,有什么方法可以在 javascriptjQuery 中实现这一点?

$(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);
        }
    });
});

** 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);
        }
    });
}

** 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);
        }
    });
}

最佳答案

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

<div id="my-route" data-route"{{ path("my_route") }}"></div>

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

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

        var route = $('my-route').data('route');       
    });
});

您还可以将 path("my_route") 更改为带有路径名称的字符串,然后执行 if/else 语句。但是我认为这不是一个好主意,因为如果您的路由名称发生更改,那么您的代码也会受到影响

关于javascript - Symfony2 : How to get the current route in javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21840982/

相关文章:

javascript - 我无法显示模型值

javascript - 如何检查是否支持 css box-shadow (jQuery)?

javascript - Ajax 动态数据与柱形条形图

javascript - 如何在运行时在 extjs 中更改代理的 extraParams 配置?

javascript - 使用关闭按钮关闭 toastr 时阻止事件。

javascript - 如何配置 Bamboo 来运行 Protractor 测试用例

javascript - 为什么 2 个 parseFloat 变量的总和给我一个不正确的十进制数

javascript - 通过多个 AJAX 请求填充数组,然后将数组传递给另一个函数

javascript - iframe 100% 全宽 bootstrap3

javascript - 使用 jquery ajax 从 Bootstrap 3 模态形式获取数据