Angular Router: не может получить доступ к параметрам маршрута в дочерних путях

В нашей основной маршрутизации 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', а не для его детей. Что мне не хватает?

1 ответ

Решение

Возможно, я не должен был допустить это, но проблема была довольно глупой... параметры дочерних маршрутов называются "childName" и "childId"... soooo.. переименование в соответствии с родительским ":name" и ":id", а затем все начало происходить!

Другие вопросы по тегам