連絡先リストを表示する/contacts
に登録されているコンポーネントがあります。表示されたリストをフィルタリングするために<input [value]="searchString">
を追加しました。角度2の新しいルータ:クエリパラメータの変更/設定
今私は、クエリのParamの形式でURL内のsearchString
を表示したいと思います。
公式ドキュメント(https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters)がqueryParams
を変更するためのrouter.navigate
を使用する方法を示し(新しいルータの3.0.0 RC2を使用)。 router.navigate(['/contacts'], {queryParams:{foo:42}})
(私は、私はちょうどqueryParams
を変更していた場合、それはコンポーネントを再ロードしないことを知っている:私はちょうどで私は現在よどのルートを知ることなく、queryParams
を変更したいので、しかし、これは、厄介なようですそれでも、これは書く権利を感じていない)私はrouter.navigate([], {queryParams:{foo:42}})
動作することを考え出したいくつかの試みの後
。これは良い感じです。
しかし、私はそれが正しい方法であるかどうかまだ分かりません。または、私はこれのためのいくつかの方法を逃した場合。
queryParams
をどのように変更しますか?
あなたのルータファイルの '/ contacts /:search-query'のようなルートパラメータに検索クエリを入れて、あなたのコンポーネントで変更を監視する方法はありますか? – mrgoos
これは違いがありますか?私は 'queryParams'も見ることができますが、それは問題ではありません。 '...'私の現在のコンポーネントは約20の検索パラメータを持っていますが、それらの大部分はオプションであり、いくつかは互いに排除します。ユーザーがパラメータを変更すると、表示されたリストにフィルタが適用され、さらにこれらのパラメータの変更がURL内に反映されます。 '' '' 'queryParams'を設定する正しい方法は何ですか?*または*" router.navigate([]、...)は唯一の正しい方法ですか? "* –
答えをありがとう、それは私を助けた。私はrouter.navigate([]、{queryParams:{...}})も使用しています。 – skovmand