2017-08-24 8 views
0

ため間違えリテラルからの角度2ルータを保つ:Iは、2つの経路を有するPARAMS

{ 
path: 'application/:groupId/:approved/:applicant-id', 
component: FooComponent 
}, 
{ 
path: 'application/:groupId/applicant-detail/:applicant-id', 
component: BarComponent 
}, 

差は最初の:approvedにPARAMであり、第二applicant-detailリテラルであることです。

this.router.navigate(['./applicant-detail/' + this.someId, { relativeTo: this.route });

はそれがapplicant-detailがリテラルであることを認識していないため、最初のルートに行きたい:もちろん、ルータはと思います。ルートを書き直すだけでなく、これを回避する方法はありますか?

答えて

3

スワップポジションは、パラメータに次のものを作る、すべてが

{ 
path: 'application/:groupId/applicant-detail/:applicant-id', 
component: BarComponent 
}, 
{ 
path: 'application/:groupId/:approved/:applicant-id', 
component: FooComponent 
} 
+0

申し訳ありませんが、ありがとう、私は今それを試してみます。なぜ少し詳しくお聞かせください。 – VSO

+0

これは上から下に向かって検索し、 "application-detail"をパラメータ値として使用し、さらに進まずに最初のルートを使用します。 –

1

ルーターの設定事項の順に動作します。

ほとんどのリテラルパスが最初になるように宣言をスワップします。

+0

あなたはどうしてよろしいですか?あるいは、ドキュメントにリンクしているかもしれません。 – VSO

+1

登録されたパスは、定義された順序で保存されます。ルータはクライアント定義パス(要求)を受け取り、順番に登録パスと比較します。最初に見つかったのはルータが返すものです。この場合、あなたのコンポーネント。 docs:https://angular.io/guide/router#example-config を参照してください。設定上のルートの順序は問題であり、これは設計によるものです。 –

関連する問題