2017-11-03 3 views
0

私は2つのコントローラを持っています。 あるコントローラから特定のリンクをクリックすると、別のコントローラの特定のアンカータグにリダイレクトする必要があります。角度4のルートで特定のアンカーにナビゲートできません

私はqueryParamとしてルータにアンカータグを渡してこれをしようとしています。

ただし、出力先コンポーネントで取得しようとすると、パラメータは定義されません。ここで

は、私は私のソースコンポーネントにやってんだよ:

this.router.navigate(['home',{ 
queryParams: {anchor: 'about'}}]) 

そして、ここで私は先のコンポーネントにパラメータを取得しようとする方法である:

this.anchor = this.route.queryParams['anchor'] 

しかし、それは常に未定義です。

リダイレクトはとにかく動作しますが、もちろん特定のアンカーには移動できません。

+1

だあなたは、クエリに*加入することに観察paramsは*ではないでしょうか? [mcve]を挙げてください。 – jonrsharpe

答えて

0

これを見てみてください:あなたは観測可能であるqueryParamMapを、使用する必要がありますhttps://angular.io/guide/router#activated-route

。理想的にはngOnInitメソッドに登録し、そこのqueryParamの値を取得する必要があります。

私が参照したリンクで指摘したように、queryParamsの使用はお勧めできません。また、あなたはどんな場合でもそれを正しく使用していません。配列ではなく、サブスクライブする必要があるオブザーバブルです。ここで

は例

ngOnInit() { 
    this.route.queryParamMap.subscribe(queryParams => { 
     this.anchor = queryParams['anchor']; 
    }); 
    } 
関連する問題