我正在使用多个 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。这条路线当时也失败了。
注意:我的警卫是同步的,但我仍然面临这个问题。请让我知道我该如何解决?
实际的代码比这复杂得多。这只是获取帮助的示例代码。