2016-11-25 97 views
0

被刮傷,因爲昨天我的頭,不能找出如何解決我的問題。我有一個父級:儀表板組件,其中包含頁面標題和下拉列表。我的孩子組件目前只包含一行:"Child Component! Chosen value from dropdown list: "Some value"".請看下面的圖片。角2兒童和家長(的WebPack,TS,角2最終)

通信工作正常,但導航到儀表盤時,我有麻煩了。

我的路線是這樣的:

{ 
    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和父路由'component'與'DashboardComponent'相同,不要認爲會導致無限循環? –

+1

@PankajParkar路由和組件可以看作是分開的。只有在'DashboardComponent'中有一些重定向時,它才能工作..雖然不像預期的那樣,但它可以工作;) – PierreDuc

回答

1

改變它的:

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

這隻會渲染否在你的空行徑router-outlet上。另一種選擇可能是將空路徑重定向到something,並讓佔位符組件顯示:'選擇疾病'。

+0

完美!那很簡單,哈哈。是的,這解決了我的問題,真棒,謝謝! – Alex