Lit*_*ewb 6 routerlink router-outlet angular angular-router
我的Root模块的路由是这样的:
RouterModule.forRoot([
{ path: '', redirectTo: 'management-portal', pathMatch: 'full' },
{ path: 'management-portal', loadChildren: './xxx/management-portal.module#ManagementPortalModule', canActivate: [AuthGuard] },
{ path: 'login', component: LoginComponent },
{ path: '**', component: NotFoundComponent }
], {
enableTracing: true
})
Run Code Online (Sandbox Code Playgroud)
它按预期工作,我可以在登录后路由到ManagementPortalModule.让我们来看看我的懒惰的ManagementPortalModule.
有一个命名的路由器插座.
<router-outlet name='sub'></router-outlet>
Run Code Online (Sandbox Code Playgroud)
我在ManagementPortalModule中的路线.
RouterModule.forChild([
{
path: '', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
Run Code Online (Sandbox Code Playgroud)
它可以在开始时在'sub'出口加载Test1Component.我点击链接时想要路由到Test2Component
<a [routerLink]="[{ outlets: { sub: ['test2'] } }]"></a>
Run Code Online (Sandbox Code Playgroud)
生成的Url
/管理门户/(子:TEST2)
当我点击时没有任何反应.然后我试了一下
<a [routerLink]="['',{ outlets: { sub: ['test2'] } }]">
Run Code Online (Sandbox Code Playgroud)
网址
/管理门户(子:TEST2)
我认为URL是正确的格式,按照这个,当我点击然后出错
无法匹配任何路线.网址细分:'test2'
请帮助,非常感谢!
尝试使用命名出口路由的非空顶级路径.
在ManagementPortalModule中路由.
RouterModule.forChild([
{
path: 'load', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅:Angular 4延迟加载,命名路由器出口无法正常工作
| 归档时间: |
|
| 查看次数: |
7223 次 |
| 最近记录: |