Угловая маршрутизация с корневым идентификатором и дочерней страницей

#angular #angular2-routing

#угловая #angular2-маршрутизация

Вопрос:

Я пытаюсь определить уникальную структуру URL, однако, похоже, я не могу заставить дочерние / не найденные маршруты работать так, как я ожидаю.

например:

www.mysite.com/:id/home www.mysite.com/:id/about-us

Я создал модуль маршрутизации, и я делаю что-то вроде этого:

 const routes: Routes = [
  {
    path: '',
    component: ConciergeComponent,
    pathMatch: 'full'
  },
  {
    component: ConciergeComponent,
    path: ':id',
    children: [{
      path: 'home',
      component: HomeComponent
    }]
  },
  {
    path: '**',
    component: NotFoundComponent
  }
];
  

Если я перейду к www.mysite.com консьерж вызывается, как и ожидалось. Я выполняю некоторые предполетные проверки на основе бизнес-правил, прежде чем перенаправлять пользователя на правильную «целевую страницу».

Однако, когда я перехожу к / usr-12 / home, это не работает, вместо этого это выдает мне NotFound (который ожидает, когда маршрут не существует). Я чувствую, что мне не хватает чего-то очень маленького здесь?

Ответ №1:

Попробуйте это.

 const routes: Routes = [
  {
    path: '',
    component: ConciergeComponent,
    pathMatch: 'full'
  },
  {
    component: ConciergeComponent,
    path: ':id/home',
    children: [{
      path: 'home',
      component: HomeComponent
    }]
  }
];
  

Комментарии:

1. технически это не то, что я хочу делать. :id всегда будет родительским параметром, и впоследствии все страницы должны иметь суффикс к :id, например: usr-12 / home, usr-12 / about-us, usr-12 / login. требование заключается в том, чтобы пользователи могли идентифицировать, что они вошли в систему, по URL.