2016-11-25 3 views
0

Я царапаю голову со вчерашнего дня и не могу понять, как исправить мою проблему. У меня есть компонент parent: dashboard, который включает в себя заголовок страницы и раскрывающиеся списки. Мой дочерний компонент содержит только одну строку на данный момент: "Child Component! Chosen value from dropdown list: "Some value"". Пожалуйста, посмотрите на приведенные ниже рисунки.Угловая 2 ребенка и родителя (webpack, TS, Angular 2 final)

Коммуникация работает нормально, но у меня проблемы при навигации на приборную панель.

Мои маршруты выглядит следующим образом:

{ 
    path: 'admin', 
    component: AdminComponent, 
    children: [ 
     { 
      path: '', 
      component: AdminComponent, 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 
}, 

В случае, если я не добавить:

 { 
      path: '', 
      component: AdminComponent, 
     }, 

в маршруте детей, я получаю сообщение об ошибке:

Uncaught (in promise): Error: Cannot match any routes: 'admin' 
Error: Cannot match any routes: 'admin' 

Но это также означает, что когда у меня есть, что добавлено в дочерних, родительский вид отображается дважды.

Все в порядке, когда я выбираю элемент из раскрывающегося списка, который запускает дочерний вид, представление выглядит так, как должно, родительское представление с выпадающими списками и дочерней текстовой строкой.

Я попытался изменить строки в детях маршрута:

children: [ 
     { 
      path: '', 
      component: AdminComponent, 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 

к:

children: [ 
     { 
      path: '', 
      redirectTo: 'admin', 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 

Но это не работает

+0

Можете ли вы предоставить Plunker своим кодом? –

+0

Компонент childeren и parent route «такие же, как' DashboardComponent', не думайте, что вызовет бесконечный цикл? –

+1

@ PankajParkar маршрутизация и компонент можно увидеть отдельно. только если в «DashboardComponent» происходит некоторое перенаправление, он должен работать. Не так, как ожидалось, но он работает;) – PierreDuc

ответ

1

изменить его к этому:

children: [ 
     { 
      path: '' 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
] 

Это будет просто отдать вещь в вашем router-outlet на пустом пути. Другим вариантом может быть перенаправление пустого пути на something и наличие компонента-заполнителя: «выберите болезнь».

+0

Perfect !! Это легко, lol. Да, это решило мою проблему, потрясающе, спасибо! – Alex

Смежные вопросы