Angular 路由器:无法访问 children 路径中的路由参数
Angular Router: can´t access to route parameters in children paths
在我们的主要 app.component 路由中,我们有这个:
{ path: 'store', loadChildren: './store/store.module#StoreModule', canActivate: [LoginGuard] },
然后在模块中我们有这样的路由:
const routes: Routes = [
{ path: '', component: StoreStartPageComponent},
{
path: ':name/:id', component: CategoryPageComponent,
children: [
{
path: ':childName/:childId', component: CategorySubPageComponent,
children: [
{ path: ':childName/:childId', component: CategorySubSubPageComponent }
]
}
]
},
{ path: '**', component: PageNotFoundComponent }
];
现在我需要的是获取参数['id'],例如:
this.route.params
.switchMap((params: Params) => params['id'])
.subscribe(id => console.log('id', id));
奇怪的是这只适用于路径:':name/:id' 而不是 children。我错过了什么?
也许我不应该承认这一点,但问题相当愚蠢。子路由参数被命名为 "childName" 和 "childId"... soooo.. 重命名以匹配父“:name " 和 ":id" 然后事情开始发生了!
在我们的主要 app.component 路由中,我们有这个:
{ path: 'store', loadChildren: './store/store.module#StoreModule', canActivate: [LoginGuard] },
然后在模块中我们有这样的路由:
const routes: Routes = [
{ path: '', component: StoreStartPageComponent},
{
path: ':name/:id', component: CategoryPageComponent,
children: [
{
path: ':childName/:childId', component: CategorySubPageComponent,
children: [
{ path: ':childName/:childId', component: CategorySubSubPageComponent }
]
}
]
},
{ path: '**', component: PageNotFoundComponent }
];
现在我需要的是获取参数['id'],例如:
this.route.params
.switchMap((params: Params) => params['id'])
.subscribe(id => console.log('id', id));
奇怪的是这只适用于路径:':name/:id' 而不是 children。我错过了什么?
也许我不应该承认这一点,但问题相当愚蠢。子路由参数被命名为 "childName" 和 "childId"... soooo.. 重命名以匹配父“:name " 和 ":id" 然后事情开始发生了!