角度路由:在空路由上,根据变量值重定向到路径

时间:2019-02-21 16:04:23

标签: angular angular-routing ngx-translate

我正在开发一个angular 7应用程序,我有一个简单的路由模块

const routes: Routes = [
  { path: ':lang', component: HomeComponent },
  { path: '',   redirectTo: '???', pathMatch: 'full' },
  { path: '**', component: PageNotFoundComponent }
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}

该应用程序有3种语言,我使用@ngx-translate。我想知道最好的方法,即通过调用getBrowserLang()的方法TranslateService来根据浏览器语言在空路径上重定向到正确的主页路径。由于浏览器语言不能属于有效语言或正确的ISO格式,因此我需要在函数中处理该数据以过滤所有无效数据,诸如此类:

validateLang() {
    const lang: string = this.translate.getBrowserLang();
    if (lang === 'en' || lang === 'it' || lang === 'es') {
      return lang;
    }
    return 'en';
 }

上面的代码在App组件的ngOnInit函数中调用,但是我需要一种方法来将该函数的结果提供给空路由的redirectTo字段,或者通过其他任何方式来解决我的问题。

0 个答案:

没有答案