2016-11-02 16 views
4

現在、角度2ルーティングについて学んでいますが、私は解決できない問題を抱えています。何らかの構文や設定が欠けているような感じです。角度2ルートアウトレットの子どもたち

1つのページに2つのルーターアウトレットがあり、ユーザーが個別にナビゲートできる2つのセクションがページに表示されます。

私はここから次のコードを試みた - 私はこれを行うとき、しかし、私はそれが子ルートが上にあることをルートを見つけることができないというエラーを取得しhttp://onehungrymind.com/named-router-outlets-in-angular-2/

。完全なコンポーネントで

{ 
    path: 'full', 
    component: FullComponent, 
    children: [ 
     { 
      path: 'list', 
      component: ListComponent, 
      outlet: 'list' 
     } 
    ] 
} 

ルート:

は、ここでは、コードです

<div divOne> 
    <router-outlet name="list"></router-outlet> 
</div> 
<div divTwo> 
    <router-outlet name="detail"></router-outlet> 
</div> 

そして、私はこのように移動します。

let navigationExtras: any = { 
     queryParams: { reference: 21 }, 
     outlets: {'list': ['list']} 
    }; 

    this.router.navigate(['full'], navigationExtras); 

これは私に次のようになりますエラーメッセージge:

core.umd.js:5995 EXCEPTION: Uncaught (in promise): Error: Cannot match any routes: 'full'

私が子供のルートからコンセントを取ったら、このエラーメッセージが表示されません。

誰かが間違っていると指摘できますか?

+2

私は... –

答えて

5

コンポーネントは、1つの名前ルータ出口を必要とし、追加の名前付きコンセント

<router-outlet></router-outlet> 
<router-outlet name="full"></router-outlet> 

this.router.navigate(['full'], navigationExtras); 

移動([{アウトレット:{route3: 'productPageを'}}])を有することができます。

navigate() { 
    let navigationExtras: any = { 
     queryParams: { reference: 21 }, 
     outlets: {full: 'full']} 
    }; 
    this.router.navigate([navigationExtras]); 
    } 

Plunker example

1

router.navigateメソッドの最初の引数は、['full']の代わりに['/full']である必要があります。

this.router.navigate(['/full'], navigationExtras);

+0

おかげで私は同じエラーを取得するいずれかの方法を正確に同じ問題を抱えています –

関連する問題