Angular 5 无法匹配延迟加载模块的命名出口上的任何路由
Angular 5 Cannot match any routes on named outlet of lazy loaded module
我的根模块路由是这样的:
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
})
按预期工作,我可以在登录后路由到 ManagementPortalModule。让我们看看我的延迟加载的 ManagementPortalModule。
有一个命名的路由器插座。
<router-outlet name='sub'></router-outlet>
我在 ManagementPortalModule 中的路由。
RouterModule.forChild([
{
path: '', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
它可以在开头加载'sub'出口中的Test1Component。我想在单击 link
时路由到 Test2Component
<a [routerLink]="[{ outlets: { sub: ['test2'] } }]"></a>
生成Url
/management-portal/(sub:test2)
当我 clicked.Then 尝试时没有任何反应
<a [routerLink]="['',{ outlets: { sub: ['test2'] } }]">
Url
/management-portal(sub:test2)
我认为 url 根据 this 的格式是正确的,然后当我点击
时出现错误
Cannot match any routes. URL Segment: 'test2'
请帮忙,非常感谢!
尝试使用命名出口路由的非空顶级路径。
ManagementPortalModule 中的路由。
RouterModule.forChild([
{
path: 'load', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
更多详情请参考:
我的根模块路由是这样的:
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
})
按预期工作,我可以在登录后路由到 ManagementPortalModule。让我们看看我的延迟加载的 ManagementPortalModule。
有一个命名的路由器插座。
<router-outlet name='sub'></router-outlet>
我在 ManagementPortalModule 中的路由。
RouterModule.forChild([
{
path: '', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
它可以在开头加载'sub'出口中的Test1Component。我想在单击 link
时路由到 Test2Component<a [routerLink]="[{ outlets: { sub: ['test2'] } }]"></a>
生成Url
/management-portal/(sub:test2)
当我 clicked.Then 尝试时没有任何反应
<a [routerLink]="['',{ outlets: { sub: ['test2'] } }]">
Url
/management-portal(sub:test2)
我认为 url 根据 this 的格式是正确的,然后当我点击
时出现错误Cannot match any routes. URL Segment: 'test2'
请帮忙,非常感谢!
尝试使用命名出口路由的非空顶级路径。
ManagementPortalModule 中的路由。
RouterModule.forChild([
{
path: 'load', component: ManagementPortalComponent,
children: [
{ path: '', component: Test1Component, outlet: 'sub' },
{ path: 'test2', component: Test2Component, outlet: 'sub' }
]
}
])
更多详情请参考: