Я не могу выборочно отображать ссылки на панели навигации. В зависимости от того, кто входит в систему (пользователь или администратор), я хочу изменить ссылку, отображаемую на моей панели навигации.
Ниже приведен код одного из таких случаев, когда пользователь/администратор выходит из системы.
В 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()
просто очищают токен, хранящийся в локальном хранилище.
Заранее извиняюсь, если ошибка, которую я сделал, глупа. Я новичок в Ангуляре.