Вложенные маршруты с корневым выходом маршрутизатора в Angular 4

Я использую вложенные маршруты в своем приложении Angular 4. Они структурированы следующим образом:

routes = [
  {
    path: 'parent',
    component: ParentComponent,
    children: [
      {
        path: 'child',
        component: ChildComponent,
        children: [
           path: 'grandchild',
           component: GrandchildComponent
        ]
      }
    ]
  }
]

У меня есть одна розетка маршрутизатора, определенная в app.component.html.

Когда я перехожу к маршруту «родительский / дочерний», эта настройка работает нормально, при этом выход маршрутизатора загружает ChildComponent.

Однако, когда я перехожу к маршруту «родитель / потомок / внук», GrandchildComponent не загружается.

Кажется, это работает с вторичной розеткой маршрутизатора в дочернем компоненте, но есть ли способ заставить GrandchildComponent загружаться на розетку корневого маршрутизатора без необходимости во вторичном?


person Krishna Chaitanya    schedule 22.11.2017    source источник
comment
Для чего нужны вложенные маршруты, если у вас только одна розетка маршрутизатора?   -  person DeborahK    schedule 22.11.2017
comment
Вам нужно будет определить маршрут на верхнем уровне. [{path: 'parent/child/grandchild', component: GrandchildComponent}], но, как говорили другие, на данный момент это не внук, поэтому, вероятно, он неправильно помечен.   -  person LLai    schedule 22.11.2017
comment
@DeborahK Цель состоит в том, чтобы использовать loadChildren для ленивой загрузки модулей.   -  person Krishna Chaitanya    schedule 22.11.2017
comment
На детском уровне? Тогда как насчет цели внуков?   -  person DeborahK    schedule 22.11.2017


Ответы (1)


Я бы сказал нет.

Если вы хотите загрузить внука в корневую розетку, то это не внук, а дедушка! Если у вас есть вложенные маршруты, вам необходимо иметь вложенные розетки.

person Community    schedule 22.11.2017