2017-12-28 14 views
2

AngularはクエリParamterが変更されたかどうかを検出できますか? 私は、2つのクエリパラメータを扱うComponentを持っていて、それに付随するパラメータに応じて、いくつかの変数をtrueまたはfalseに設定します。問題は、queryparameter 1を持つコンポーネント上のimが、コンポーネントを離れることなくqpが2番目のパラメータに変更できる場合です。その場合、変数を別々に設定する必要があります。だから私はそれをどのように検出するのですか?それも可能ですか?あなたは、ルート・コンポーネントクエリパラメタが変更されているかどうかを検出することは可能ですか?

constructor(route:ActivatedRoute) { 
    route.queryParams.subscribe(p => console.log(p.myQueryParam); 
} 

でのparamsを購読することができ

+0

これは必須のユースケースでもありますが、誰かがいつ実際にクエリのパラメータを必要とするのか分かりません。なぜあなたはコープネントに入力を渡しません –

+0

@JinsPeterダイレクトリンク? – Pac0

答えて

1

https://angular.io/api/router/ActivatedRoute

を参照してください。あなたは、他のルートレベルにクエリのparamsを持つことができますが、それらは、マトリックスパラメータと呼ばれています。

はあなたが、観察がクエリパラメータの変化を観察するためにActivatedRouteモジュールによって提供さのparamsを購読することができますもこのセクションhttps://angular.io/guide/router#route-parameters-required-or-optional

+0

コメントの最初の部分は私にあなたに感謝を助けた – Kai

+0

喜んで聞いてください。 2番目の部分は、クエリと行列のパラメータの違いを知らなかった場合の追加情報でした。 –

0

の最後を参照してください。

constructor(private route:ActivatedRoute) { 
this.route.params.subscribe(
    (params:Params)=>{ 
    console.log(params['yourId']); 
    } 
)} 
+0

'params'はルートパラメータ用であり、クエリパラメータ用ではありません。 –

関連する問題