2017-08-28 147 views
2

角2路由器当前不允许多个级别的嵌套。将子路由添加到子路由

如果你有这样的结构:

/users/profile/detail 

如何链接到/users/profile,当我在user组件单击按钮,它应该路由profile组件?

代码:

const appRoutes: Routes = [ 
    { 
    path: 'menu', 
    component: MenubarComponent, 
    children: [ 

     { path: 'page1', component: page1Component }, 
     { path: 'user', component: userComponent, 
     children: [ 
     { path: 'profile', component: profileComponent }, 
     ] 
     }, 
     { path: 'page2', component: page2Component }, 
     { path: 'page3', component: page3Component } 

    ] 
    }, 
    { 
    path: '', 
    redirectTo: '/login', 
    pathMatch: 'full' 
    }, 

    { path: 'settings', component: SettingsComponent } 
]; 
+1

可以添加代码 – Robert

+0

什么是'非terminal'路由显示哑分量?我不太了解这个问题,你能提供一个解决问题的方法吗? –

+0

您的路由器插座是否包含另一个命名的router-outlet?我认为如果命名的路由器插座在加载期间嵌套是可能的。这只是一个假设,我从来没有尝试过。你有没有问过你的角度路由器家伙(维克多Savkin)? – SayusiAndo

回答

0

您需要定义一个detail孩子路线profile路线可以导航到/users/profile/detail。只需添加一个第二个孩子的路线profile与当你浏览到/users/profile

const appRoutes: Routes = [ 
    { 
    path: 'menu', 
    component: MenubarComponent, 
    children: [ 

     { path: 'page1', component: page1Component }, 
     { path: 'user', component: userComponent, 
     children: [ 
     { path: 'profile', component: profileComponent, 
      children: [ 
      { path: '', component: dummyComponent, pathMatch: 'full' }, 
      { path: 'detail', component: userProfileDetailComponent } 
     }, 
     ] 
     }, 
     { path: 'page2', component: page2Component }, 
     { path: 'page3', component: page3Component } 

    ] 
    }, 
    { 
    path: '', 
    redirectTo: '/login', 
    pathMatch: 'full' 
    }, 

    { path: 'settings', component: SettingsComponent } 
]; 
+0

它不适合我..我需要嵌套路由。 –

+1

“不工作”不是很有帮助。请发布完整且准确的错误消息。 –

+0

Url正在获取像用户/配置文件/详细信息的更改,但详细信息组件的视图不呈现..仅配置文件组件视图即将出现 –