我正在使用 Ajax
更改页面中的数据。所以,我想知道调用不同函数的当前路由是什么。我已经阅读了许多用于检索当前 url 以及在 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);
}
});
}
最佳答案
我会做的是在 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/