我正在使用Ajax
更改页面中的数据。所以,我想知道当前路由是什么,以便调用不同的功能。我已经阅读了许多解决方案,用于检索当前网址以及获取Controller
和Twig
中的当前路由。但是,有没有办法在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);
}
});
});
** 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);
}
});
}
答案 0 :(得分:5)
我要做的是在html标签中输出路线(你想要的任何路线),例如(树枝版):
<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');
});
});
您还可以将路径(“my_route”)更改为包含路径名称的字符串,然后执行if / else语句。但是,我不认为这是一个好主意,好像你的路线名称改变了,那么你的代码也会受到影响
答案 1 :(得分:1)
您不会仅使用Javascript或JQuery获取当前路由。但是,您可以使用Twig获取当前使用Javascript或当前路线的URL。
另一种可能的解决方案是向服务器发出一个AJAX调用,传递当前URL,然后将其与正确的路由匹配并发回。但是,如果我是你,我会从Twig获得当前路线。
答案 2 :(得分:-1)
var route = "{{ app.request.attributes.get('_route') }}";