1. ホーム
  2. javascript

[解決済み] Angular 2 ルータ.ナビゲート

2022-03-02 01:41:23

質問

Angular 2でルートとクエリパラメータが混在するルートに移動しようとしています。

以下はルートの例で、ルートはパスの最後の部分です。

{ path: ':foo/:bar/:baz/page', component: AComponent }

このように配列を使ってリンクを試みます。

this.router.navigate(['foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)

エラーは出ていませんし、私が理解できるところでは、これでうまくいくはずです。

Angular 2のドキュメントには(現時点では)例として以下のように書かれています。

{ path: 'hero/:id', component: HeroDetailComponent }

['/hero', hero.id] // { 15 }

どこが間違っているのか、どなたかわかりますか?私はルーター3を使用しています。

解決方法を教えてください。

最初のセグメントが / は相対ルートです。 router.navigate が必要です。 relativeTo パラメータは、相対的なナビゲーションのために

ルートを絶対化するか

this.router.navigate(['/foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)

を渡すか relativeTo

this.router.navigate(['../foo-content', 'bar-contents', 'baz-content', 'page'], {queryParams: this.params.queryParams, relativeTo: this.currentActivatedRoute})

こちらもご覧ください