1

私のアプリには、複数のパラメーターを持つルートがあります。

http://localhost:3000/department/6/employee/45/sales?from=20160921&to=20160928

これらのパラメータを評価するにはどうすればよいですか? paramsqueryParamsのを購読できますActivatedRoute

this.route.params.subscribe(params => ...load data for params);
this.route.queryParams.subscribe(queryParams=> ...load data for queryParams);

ただし、もちろん、これにより負荷が 2 回トリガーされます。また、たとえば、上記の例のsalesfrom/の両方の情報が常に必要です。to

したがって、上記のコードは次のようになります

this.route.params.subscribe(params => {
    let queryParams = this.route.snapshot.queryParams;
    ...load data for params/queryParams
}

this.route.queryParams.subscribe(queryParams => {
    let params = this.route.snapshot.params;
    ...load data for params/queryParams
}

そして、負荷を 2 回トリガーするという問題に対する解決策はまだありません。

さらに悪いことに、自分の でどれだけレベルを上げる必要があるかを把握する必要もあるためActivatedRoute

this.route.parent.parent.parent.params.subscribe(...)

うーん。とにかく、遅延ロードされたコンポーネントの場合、それはうまくいきません。いずれにせよ、ほんの一握りのルート パラメーターを取得するだけでも、大量のボイラープレート コードになります。

私はこれを間違っていますか?これについて推奨される方法はありますか?

4

1 に答える 1