据我所知,调用签名canActivate
如下所示:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
}
我有一个服务,它需要一个组件的名称并返回访问该组件所需的用户角色,以便我可以检查canActivate
我的警卫的功能,活动用户是否具有相应的角色。我的问题是,我不知道如何访问该组件。经过一番谷歌搜索后,我找到了这样的解决方案:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const nameOfComponent = route.routeConfig.component.name;
return doSomeRoleCheck(nameOfComponent);
}
但就我而言,我只是收到一个错误:“无法读取未定义的属性'名称'”。如何访问活动 Route 的组件,尤其是名称作为字符串?
编辑
我发现,我确实在父路线上检查了这个守卫。当我在子路线中检查它时,它可以工作。如何从父组件访问子组件ActivatedRouteSnapshot