具有延迟加载模块的路由器导航

问题描述 投票:1回答:1

我们有一些延迟加载模块,路由器的配置如下:

{
    path: 'parent',
    component: Parent,
    children: [
        {
            path: child1,
            loadChildren: 'pathToModule1'
        }
        {
            path: child2,
            loadChildren: 'pathToModule1'
        }
    ]
}

- child1 
{
    path: '', 
    component: Child1 
}

- child2 
{
    path: '', 
    component: Child2 
}

所以,当我在Child1上时,想通过以下方式导航到Child 2:>

this.router.navigate(['../child2'], {relativeTo: this.activatedRoute})

然后我们得到parent / child1 / child2

但是由于添加了惰性加载模块配置而导致空节,我应该使用

this.router.navigate(['../../child2'], {relativeTo: this.activatedRoute})

因为实际上我们有parent / child1 +''

] >>

预期的行为

我们得到父母/孩子2有什么办法可以改变这种行为?因为有许多嵌套的延迟加载模块,我们将获得一点点空节,我们将写../../../../../../sibling进入同级路线。

使用指令进行的问题的最小复制

具有延迟加载模块的任何应用程序。只需尝试导航到同级路线即可。

plunker example只需查看成员并尝试使用两个按钮返回]

Angular版本:4.1.3

浏览器:任意

我们有一些延迟加载模块,路由器的配置如下:{path:'parent',component:Parent,children:[{path:child1,loadChildren:'...

angular angular2-routing lazy-loading
1个回答
0
投票

解决方案是将relativeLinkResolution设置为'corrected'的路由器进行配置。

@NgModule({
  imports: [
    RouterModule.forRoot(ROUTES, { relativeLinkResolution: 'corrected' })
  ]
})
class AppModule {}
© www.soinside.com 2019 - 2024. All rights reserved.