gpt4 book ai didi

Angularjs RouteProvider 多个路由导致相同的 View

转载 作者:行者123 更新时间:2023-12-02 22:28:22 26 4
gpt4 key购买 nike

因此,使用 angularjs $routeProvider 的工作流程如下,

    $routeProvider
.when('/main1', {
templateUrl: 'view1.html',
})
.when('/main2', {
templateUrl: 'view2.html',
})

我的问题是,有没有办法简化以下代码。如果when('/main1')和when('/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',
})

但从语义上讲,这似乎不是最好的解决方案,因为我喜欢在配置之后在运行 block 中保留配置选项设置。我们也无法将工厂(仅限提供者,但我可能弄错了)注入(inject)到配置中。

最佳答案

我会选择将语言作为路由中的第一个 url 段。

$routeProvider.when('/:lng/main', {
templateUrl: 'main.html',
controller: function($routeParams){
var lng = $routeParams.lng;
}
})

如果 $routeProvider 能够提供可以隔离 url 段的功能,那就太好了。我在每条 route 放置 :lng 不太漂亮。

关于Angularjs RouteProvider 多个路由导致相同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com