2017-03-15 9 views
1

".../browser"という特定のURLをナビゲートすると読み込まれるコンポーネント "Browser"があります。ビューはいくつかのクエリパラメータに応じて更新されるので、 ".../browser?p = 1"のようなURLを持つことができます。特定のURL上を移動するときにqueryParamsを自動的に追加します

".../browser"というURLが自動的に ".../browser?p = N"にリダイレクトされることを望みます。ここで、Nはngrx-storeに要求され、応用。

私は「ブラウザ」のコンポーネントを初期化するときにこれを追加しようとしました:

だから、
ngOnInit(): void { 
    this.store.select((s: AppState) => s.media.rootMediaId) 
    .combineLatest(this.route.queryParams, (root, query) => { 
     return {root, query}; 
    }) 
    .subscribe(({root, query}) => { 
     this.rootId = root; 
     if (query['p'] === undefined) { 
     this.router.navigate([''], { relativeTo: this.route, queryParams: {p: this.rootId} }); 
     } 
    }) 

    [...] 
} 

、私はrootMediaIdを取得するときにルートを更新するために、rootMediaIdとqueryParamsの両方に加入してqueryParamsがある場合未定義。

ブラウザコンポーネントを初めて読み込むとうまくいきます。しかし、私は私のアプリでナビゲートし、私が "... /ブラウザ"に戻る場合、それはもはや動作しません。 Promise this.router.navigate(...)の応答をコンソールに記録したので、ルータはナビゲートしません。クエリパラメータの実現を強制することができますか、それとも他の方法でも必要なのですか?

ありがとう、

答えて

1

この問題を回避する方法を見つけました。 私はクエリのパラメータがない特殊なケースでビューを更新するので、クエリのパラメータとして "p = N"がある場合は...ここで尋ねた質問には答えませんが、十分です私の用法のために。

関連する問題