如果一个简单用户登录,按钮确实会显示,但如果一个具有管理员角色的用户登录,它确实会显示——我不希望这样。
<a *ngIf="userService.roleMatch !== (['Admin'])" mat-list-item [routerLink]="'/homeb'" routerLinkActive="active">
<i class="fas fa-home"></i>Home I miei dati
</a>
最好的解决方案是创建一个处理授权的类。在里面,制作一个函数,输出你需要的一切。
roleMatch(allowedRoles): boolean {
var isMatch = false;
var userRoles: string[] = JSON.parse(localStorage.getItem('userRoles'));
for (let el of allowedRoles) {
if (userRoles.indexOf(el) > -1) {
isMatch = true;
break;
}
}
return isMatch;
}
<a *ngIf="!userService.roleMatch(['Admin'])" mat-list-item [routerLink]="'/homeb'" routerLinkActive="active">
<i class="fas fa-home"></i>Home I miei dati
</a>
返回false,在foreach循环内我相信不会有帮助。