【发布时间】:2018-10-18 08:25:09
【问题描述】:
我正在尝试在我的项目中实现基于角色的授权。我正在尝试根据角色从菜单项的导航栏中隐藏某些项目。 我遇到了上述错误。我该如何解决这个问题?
service.ts
roleMatch(allowedRoles):boolean{
var isMatch =false;
var userRoles:string[]=JSON.parse(localStorage.getItem('userroles')); //the error is here
allowedRoles.forEach(element => {
if(userRoles.indexOf(element)>-1){
isMatch=true;
return false;
}
})
return isMatch;
}
component.html
<li *ngIf="Authentication.roleMatch(['Fetch user',
'add user',
'edit user',
'change status',
'delete user',
'delete role',
'Fetch Recuirtmentdetails'])">
<a routerLink="/role"class="dropdown-item">User Role</a>
</li>
【问题讨论】:
-
localStorage.getItem('userroles')的值是多少? (你可以使用console.log查看或debugger声明) -
你在做
setItem时使用JSON.stringify()吗? -
看看
some、includes等数组函数是值得的,它们可以帮助你的代码更具可读性。 -
userroles的值为Fetch user,add user,edit user,change status,delete user,delete role,Fetch Recuirtmentdetails
-
不,我在做 setItem 时没有使用 JSON.stringify()。
标签: json angular angular5 angular6