2016-10-31 3 views
1

私はナビを使ってルート内のクエリを渡し、正しいコンポーネントにナビゲートするだけの方法で検索します。Angular2の同じページへのルーティングを検出するにはどうすればよいですか?

onSubmit() { 
    this.router.navigate(['/search', { query: this.searchQuery }]); 
} 

と、ターゲット・サーチ・コンポーネントで:

this.route.params.forEach((params: Params) => { 
    doSearch(params['query']); 
} 

私は私のクエリを変更したときに、これは完璧に動作しますが、それがないように、基本的に私のナビゲーションバーコンポーネントの検索ボタンの

クエリが変更されないときParams Observableへの定期購読で、私はparamsが同じままであるときに通知を受け取らないことを理解しています。そして、ルータはすでにロードされているコンポーネントを再利用するだけで、ngOnInitは呼び出されないため、コードを使用することはできません。

問題は、検索クエリが同じであるため、結果が正しくない可能性があります。だから私はdoSearchを同じパラメータでも、もう一度呼び出す方法が必要です。

ルータがパラメータを変更せずに同じ宛先にルーティングするときに検出する方法はありますか。

答えて

2

私があなたがthis.router.eventsにご登録いただきましたら、ご質問が同じままであっても通知を受けると思います。

+0

ありがとうございました、それらのイベントを使用して作業しました。しかし、実際の解決策よりも回避策に似ています。 – MuhKuh

関連する問題