2016-12-30 19 views
6

子ルート間をナビゲートすることができないようです。私はそのような新しい/タイプルートに移動しようとしてchild1のコンポーネントによ子ルート間を移動する角度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 } 
     ] 

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

しかし、私はエラーを得続ける:任意のルートを照合することはできません

ルータの概要。 URLセグメント: '新規/アセット'

私は手動でURLを挿入すれば正常に動作します。

大変感謝します。

答えて

11

あなたがrelativeToを使用する場合../

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

この作品は、ありがとう!私が非常に多くの問題を抱えていた理由は、コンポーネント自体ではなく、サービス内でナビゲート操作を使用していたためです。 –

+1

私は参照してください。 relativeToルートは、サービス内に入るのが容易ではありません。 –

3

を使用して、あなたは、相対パスに入れて両親の観点からだけではなく、全体の1べきで移動しようとすることができます。あなたの例では、より多くのようにする必要があります:

this._router.navigate([ '../', objType ], { relativeTo: this._route }); 
4
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> 
+0

2ndは '/'で始めるべきではありません。 'relativeTo'が相対パスとして扱われることを必要としていても、パスを接頭辞'/'で接頭辞を明示します。 –

+1

@GünterZöchbauer、それは/なしで動作しますが、より明確にするために、私はスラッシュ – Milad

関連する問題