【发布时间】:2018-03-21 11:34:30
【问题描述】:
我在尝试根据用户配置文件延迟加载模块时遇到问题, 我定义了三个默认路径(每个路由的路径为空),每个用户都可以访问一个特定的模块, 我正在使用警卫来确定当前的用户配置文件(实际上我正在手动切换以通过设置 const canGo =true 来设置默认加载的模块)
预期的行为是实际路由配置应该根据配置文件激活足够的路由,但事实并非如此。
export const routes: Routes = [
{
path: '',
loadChildren: 'app/user/user.module#UserModule',
canActivate: [
CanActivateUserModuleGuard
],
},
{
path: '',
loadChildren: 'app/admin/admin.module#AdminModule',
canActivate: [
CanActivateAdminModuleGuard
]
},
{
path: '',
loadChildren: 'app/moderator/moderator.module#ModeratorModule',
canActivate: [
CanActivateModeratorModuleGuard
]
},
{
path: '404',
component: NotFoundComponent
}
];
注意: 如果有兴趣,请在在线问题下方 https://stackblitz.com/edit/angular-vd4oyu?file=app%2Fapp-routing.module.ts
实现此要求的最佳方法是什么?
【问题讨论】:
-
如果有错误,能否贴出错误堆栈?
-
没有错误,但是这里的问题是路由检测默认降落到第一条路由路径,并且不会通过警卫继续到下一条路由。在提供的示例中,它应该重定向到管理模块。
标签: angular angular-cli