2016-12-30 12 views
6

Çocuk yolları arasında gezinmek mümkün görünmüyor.Çocuk yolları arasında gezinme Angular 2

Yönlendirici genel bakış: ben çok gibi yeni/tip rota gitmek için çalışırken child1 bileşeninde olduğum

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 } 
     ] 

: Herhangi yolları eşleşmiyor Can:

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

Ama hata almaya devam . URL Segmenti: 'yeni/varlık'.

URL'yi el ile eklerseniz iyi çalışır.

Yardım çok takdir edilecektir, teşekkürler!

cevap

11

Sen relativeTo kullandığınızda ../

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

Bu, teşekkür ederim! Çok fazla sorun yaşadığım için bir serviste navigasyon işlemini kullanıyordum, komponentin kendisi değil. –

+1

Anladım. RelativeTo rotasının bir hizmete girmesi çok kolay değil. –

3

kullanmak ve daha sonra, göreli yoluna koymak ebeveynler açısından değil sadece bütün bir gerektiğini gezinmek için deneyebilirsiniz. Örnekte daha fazla gibi olmalıdır:

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

Ya

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

Ya çapa etiketi ile

:

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

Veya:

<a [routerLink]=" ['/parent/new'] "> 
     Go to new 
</a> 
+0

2'nci, '/' ile başlatılmamalıdır. Göreceli bir yol olarak kabul edilmek için 'relativeTo' gerektirse de, yolu daha belirgin hale getirmek için yolu// ile önceden ekleyebilirim. –

+1

@ GünterZöchbauer,// ​​de olmadan çalışır, ama daha açık olmak gerekirse, eğik çizgi ekledim – Milad