1
データを表示する領域を複数選択できるアプリケーションがあります。それらの地域のチェックボックスの上に、私はメインチェックボックス "AllRegions"を追加しました。他のすべてのチェックボックスを選択/選択解除します。 これはうまくいきます、パラメータはURLとすべてに投稿されます。角度クエリパルサムサブスクリプションが起動しません(すべてチェックボックスがチェックされています)
「AllRegions」チェックボックスをオンまたはオフにしたときの唯一の問題は、コンポーネントがパラメータ変更のサブスクリプションに反応しないことです。単一の領域のチェックを外すと機能しますが、同じ関数を呼び出してもこの "AllRegions"では機能しません。
コンポーネント:私は、チェックボックスをクリックしたときに
ngOnInit() {
this.route.queryParams.subscribe(params => {
this.loadRegionData();
})
}
このコードが呼び出されます。
this.router.navigateByUrl(this.router.createUrlTree([url], { queryParams: { regions: regionParameters } }));
なぜ私がnavigateByUrlを実行したときにngOnInitのサブスクリプションが起動しないのですか?
は、私はあまりにも同様のコードを試してみましたが、それは私が探しているものではないのです。私はあなたが以下にリファクタリングすることをお勧めします(asumingルートタイプActivatedRouteです)。 私のコードを更新しました。これは "getSelectedRegions"関数に関するものではありません。 私はroute.queryParamsを購読しました。そして、URLのパラメータが変更されるとすぐに私はいくつかのコードを行いたいと思います。新しい関数 "this.loadRegionData()"が追加されました。 パラメータが変わるたびに、私は再度RegionDataをロードしたいと思います。 これは私の単一のチェックボックスではうまくいきましたが、何らかの理由で、すべてのチェックボックスが同時にチェックされていなければ、サブスクリプションは起動しません。 – YamahaFTW