【发布时间】:2018-02-26 10:14:47
【问题描述】:
我正在使用多个 canActivateChild 守卫,如下所示:
{path: 'admin', canActivateChild : [AdminAuthGuard, EmployeeAuthGuard], children: adminRoutes }
下面是管理员守卫的定义:
canActivateChild() : boolean {
const role = localStorage.getItem('role');
if(role === 'admin') {
return true;
}
else {
return false;
}
}
我有非常相似的员工警卫,我正在检查作为员工的角色。 上面代码的问题是:
- 如果我的第一个守卫返回 false,则根本不执行第二个守卫。
- 如果我的第一个守卫返回 true 而我的第二个守卫返回 false。这条路线当时也失败了。
注意:我的守卫是同步的,但我仍然面临这个问题。请告诉我如何解决?
实际的代码比这复杂得多。这只是获取帮助的示例代码。
【问题讨论】:
-
@Safiyya 我不想检查所有警卫。我的申请中有 10 个 gurds。使用共享服务将检查每个警卫。对于管理员路由,我只想检查两个警卫。