我无法在导航栏上选择性地显示链接。 根据谁登录(用户或管理员),我想更改哪个链接显示在我的导航栏上。Angular 2-使用* ngIf有多个条件
下面是用户/管理员注销的一个此类实例的代码。
在navbar.component.html -
<li *ngIf="authService.userLoggedIn()== true && authService.adminLoggedIn() == false"
[routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a (click)="onUserLogoutClick()" href="#">Logout</a>
</li>
<li *ngIf="(authService.adminLoggedIn() == true) && (authService.userLoggedIn() == false)"
[routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a (click)="onAdminLogoutClick()" href="#">Logout</a>
</li>
两个authService.adminLoggedIn()
和authService.userLoggedIn()
回tokenNotExpired;
下面是在navbar.component.ts相关的代码 -
onUserLogoutClick() {
this.authService.userLogout();
this.flashMessage.show('You are now logged out', {cssClass: 'alert-success', timeout: 3000});
this.router.navigate(['/login']);
return false;
}
onAdminLogoutClick() {
this.authService.adminLogout();
this.flashMessage.show('Administrator now logged out', {cssClass: 'alert-success', timeout: 3000});
this.router.navigate(['/admin']);
return false;
}
authService.adminLogout()
和authService.userLogout()
只是清除存储在本地存储中的令牌。
如果我犯的错误是愚蠢的,我很抱歉。我是Angular的新手。
修改您的文章更意味着FUL – Aravind
你怎么确定,如果管理员登录或用户登录在 – Aravind
您可以请解释authService.adminLoggedIn()和authService.userLoggedIn()是否返回tokenNotExpired,但您测试布尔值为true?我还可以问你是否愿意将逻辑作为JS代码的一部分而不是在模板中?它似乎没有模板的影响。 –