2016-12-30 5 views
6

Я не могу перемещаться между дочерними маршрутами. ОбзорПеремещение между дочерними маршрутами Угловое 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: «новый/актив».

Если я вручную вставляю URL-адрес, он отлично работает.

Помощь была бы принята с благодарностью, спасибо!

ответ

11

Вы можете использовать ../

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

Это работает, спасибо !. Причина, по которой у меня возникло столько проблем, заключается в том, что я использовал операцию навигации в службе, а не в самом компоненте. –

+1

Я вижу. Относительно маршрута не слишком легко попасть в сервис. –

3

При использовании relativeTo, а затем попытаться перейти, вы должны поставить на пути относительной, а не только в целом один с точки зрения родителей. В вашем примере это должно быть больше как:

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

Не следует начинать 2-го с '/'. Несмотря на то, что для этого требуется относительный относительный путь относительного пути, я бы префикс пути с помощью '/', чтобы сделать его более очевидным. –

+1

@ GünterZöchbauer, он работает без /, но, чтобы быть более ясным, я добавил косую черту – Milad

Смежные вопросы