我正在尝试在我的有角度的应用程序中获取用户角色,但无法正常工作: 这是我的Routes.ts中的代码:
{path: 'adminpanel', component : AdminPanelComponent, canActivate : [AuthGuard], data : {roles : ['Admin']}},
在我的auth.guard.ts中:
export class AuthGuard implements CanActivate {
constructor(private router : Router, private userService : UserService){}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if(localStorage.getItem('userToken') != null)
{
let roles = next.data["roles"] as Array<string>;
if(roles){
var match = this.userService.roleMatch(roles);
if(match) return true;
else{
this.router.navigate(['/forbidden']);
return false;
}
this.router.navigate(['/login']);
return false;
}
}
this.router.navigate(['/login']);
return false;
}
这里的问题是,我总是(未定义)(next.data [“ roles”]作为数组)获得未定义的条件,所以我的条件无法正常运行。 请问有什么可以帮忙的。我正在使用Angular6