因此,angularjs $ routeProvider的工作流程如下:
$routeProvider
.when('/main1', {
templateUrl: 'view1.html',
})
.when('/main2', {
templateUrl: 'view2.html',
})
我的问题是,有没有办法简化以下代码。如果何时('/ main1')和何时('/ main2')指向同一模板。所以,
$routeProvider
.when('/main1', {
templateUrl: 'view1.html',
})
.when('/main2', {
templateUrl: 'view1.html',
})
问题是因为如果我们在网站上有多种语言,并且我们希望有多个网址的翻译。
另一种解决方案是识别网站是否正在使用.com或.de,从而调整为正确的/ main1或/ main2转换。例如,
var url = window.location.href;
var main;
if (url.match(/.de/) !== null){
main = "/main1";
}else{
main = "/main2";
}
$routeProvider
.when(main, {
templateUrl: 'view1.html',
})
但从语义上讲,这似乎不是最好的解决方案,因为我喜欢在配置后保持运行块中的配置选项。我们也不能注入工厂(只有供应商,我可能会弄错)才能配置。
答案 0 :(得分:0)
我会把语言作为路线中的第一个网址段。
$routeProvider.when('/:lng/main', {
templateUrl: 'main.html',
controller: function($routeParams){
var lng = $routeParams.lng;
}
})
如果$routeProvider
提供此功能,可以隔离网址段,那将是非常好的。我在每条路线上都很:lng
。