2016-11-25 31 views
0

昨日から私の頭を傷つけていて、私の問題を解決する方法を理解できません。私は、親:ダッシュボードコンポーネントを持っています。これには、ページヘッダーとドロップダウンリストが含まれています。私の子コンポーネントは現時点ではただ1行しか含みません:"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' 

しかし、これも子に追加した場合、親ビューが2回表示されることを意味します。

ドロップダウンリストからアイテムを選択すると、子ビューが表示され、ビューは必要なように表示され、親ビューはドロップダウンリストと子テキストラインで表示されます。

私は子供のルート内の行を変更しようとしました:へ

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

関連する問題