Angular 4 - 路由器redirectTo使用变量段

时间:2017-09-17 18:14:49

标签: angular routing

在下面的路由路由中,我在尝试抓取http://localhost:4200/

时收到以下错误
  

错误错误:未捕获(承诺):错误:无法重定向到' /:userCountry /:userLanguage / home'。找不到':userCountry'。   错误:无法重定向到' /:userCountry /:userLanguage / home'。找不到':userCountry'。       在ApplyRedirects.webpackJsonp ... / .. / .. / router / @ angular / boot.es5.js.ApplyRedirects.findPosParam(router.es5.js:1784)

每个其他路由路径都在工作,它只是redirectTo似乎没有替换变量userCountry(以及userLanguage)的值。

非常感谢任何帮助。

const appRoutes: Routes = [
   { path: '', redirectTo: '/:userCountry/:userLanguage/home', pathMatch: 'full' },
   { path: ':userCountry/:userLanguage/home', component: HomeComponent },
   { path: ':userCountry/:userLanguage/about', loadChildren: './about/about.module#AboutModule' },
   { path: ':userCountry/:userLanguage/terms', loadChildren: './terms/terms.module#TermsModule' },
   { path: ':userCountry/:userLanguage/privacy', loadChildren: './privacy/privacy.module#PrivacyModule' },
   { path: '**', component: PageNotFoundComponent }
];

当错误附加时,我的变量已经有了值。

以下是我的console.log()

的摘录
[AppRoutingModule.constructor]this.userLanguage=fr
    [AppRoutingModule.constructor]this.userCountry=ca  
    ...  
    ERROR Error: Uncaught (in promise): Error: Cannot redirect to '/:userCountry/:userLanguage/home'. Cannot find ':userCountry'

1 个答案:

答案 0 :(得分:1)

message路径中的路由匹配时,您需要将默认值传递给userCountryuserLanguage。你可以这样做

''