【发布时间】:2017-12-20 00:41:07
【问题描述】:
Angular2 - TypeScript - ng-Translate
大家好,
我需要根据选择的语言“en/soybean”、“fr/soya”更改我的 URL 的其余部分。在我的 app.routes 中,我得到了这条路径:
{ path: ':lang/soybean', component: SoybeanComponent }
我的 SoyBean 组件是使用 ng-translate 从 lang 参数转换而来的
this.route.params.subscribe(params => {
translate.use(params['lang']);
})
如何将网址显示为 fr/soya 但仍使用路径 fr/soybean !?
我尝试了什么
*我创建一个新路径:{ path: ':lang/soya', component: SoybeanComponent },
我以为我可以将用户重定向到好的路径:
if(params['lang'] === 'en'){
this.router.navigateByUrl('lang/soybean');
}
if(params['lang'] === 'fr'){
this.router.navigateByUrl('lang/soya');
}
但它会导致无限加载。
然后我想我可以在重定向后对 lang 参数进行硬编码:
if(params['lang'] === 'en'){
this.router.navigateByUrl('en/soybean');
}
if(params['lang'] === 'fr'){
this.router.navigateByUrl('fr/soya');
}
但在这种情况下,我会捕获一个异常。*
【问题讨论】:
-
您似乎将
lang视为路由参数和常量路径路由? -
lang确定我将使用的女巫语言,但它并没有改变路径。如果lang是fr,那么soy.html 和soy.component 将被翻译成法语。我想要的是如何将网址显示为 fr/soya 但仍使用路径 fr/soybean !抱歉解释不好,我会编辑我的第一篇文章!
标签: angular typescript url translate