我安装了FOSJsRouting但我的路线需要_locale
参数。我怎么能在JS中做到这一点?有没有办法在js中获取语言环境?
在twig中,我可以app.request.attributes.get('_locale')
但是在JS中,我找不到任何文档。
$.ajax({
type : 'get',
url : Routing.generate('get_credits', {'_locale': app.request.attributes.get('_locale'), 'amount' : amount, 'monthNumber' : month }),
beforeSend : function(){
console.log('loading');
},
success: function(data){
},
error : function(){
}
});
答案 0 :(得分:5)
我通常做的是将语言环境设置为html标签属性
<html lang="{{ app.request.locale }}">
导致
<html lang="EN">
这对SEO也很有用,你总是可以通过调用
来获取JS中的语言环境$('html').attr('lang');
答案 1 :(得分:0)
如果您的Js脚本在树枝上,您可以这样做:
var mylocale= "{{ app.request.attributes.get('_locale') }}"; // or {{ app.request.locale }}
$.ajax({
type : 'get',
url : Routing.generate('get_credits', {'_locale': mylocale, 'amount' : amount, 'monthNumber' : month }),
beforeSend : function(){
console.log('loading');
},
success: function(data){
},
error : function(){
}
});
答案 2 :(得分:0)
您还可以使用master
版本的FOSJsRoutingBundle,其中包含PR,可自动注入_locale
参数。
使用以下内容更新您的composer.json
文件
"friendsofsymfony/jsrouting-bundle": "dev-master"
并运行:
composer update friendsofsymfony/jsrouting-bundle
我不喜欢使用master
版本的库,但这是目前最简单的解决方案。