web-dev-qa-db-ja.com

子ルート間の移動Angular 2

子ルート間をナビゲートできないようです。

ルーターの概要:

path: 'parent', component: parentComponent,
        children: [
            { path: '', redirectTo: 'child1', pathMatch: 'full' },
            { path: 'child1', component: child1Component },
            { path: 'child2', component: child2Component },
            { path: 'new/:type', component: child3Component },

            { path: '**', component: PageNotFoundComponent }
        ]

私はchild1コンポーネントで新しい/タイプのルートに移動しようとしています:

this._router.navigate(['new', objType], { relativeTo: this._route });

しかし、エラーが発生し続けます:どのルートにも一致しません。 URLセグメント:「new/asset」。

URLを手動で挿入すると、正常に機能します。

ヘルプは大歓迎です、ありがとう!

11
David Pascoal

../を使用できます

this._router.navigate(['../new', objType], { relativeTo: this._route });
16
this.router.navigate(['../../new'], { relativeTo: this._route })

または

this.router.navigate(['/parent/new'])

またはアンカータグ付き:

 <a [routerLink]=" ['../../new'] ">
      Go to new
 </a>

または:

 <a [routerLink]=" ['/parent/new'] ">
      Go to new
 </a>
7
Milad

relativeToを使用してからナビゲートしようとすると、親の視点からのパス全体だけでなく、相対パスに配置する必要があります。あなたの例では、次のようになります。

this._router.navigate([ '../', objType ], { relativeTo: this._route });
3
benny_boe