Я хотел бы выполнить вызов API только в том случае, если условие true
в *ngIf="auth.isLoggedIn(); else anonymousUser"
: однако вызов API для сервера выполняется даже auth.isLoggedIn()
, возвращает false.
navbar. html :
<ng-container *ngIf="auth.isLoggedIn(); else anonymousUser">
<li *ngIf="appUser$ | async as anUser">
{{ anUser?.name }}
</li>
</ng-container>
navbar.ts
export class NavbarComponent implements OnInit {
appUser$: Observable<AppUser>;
constructor(private userService: UserService,
private auth: AuthService) {
}
async ngOnInit() {
this.appUser$ = this.userService.get();
}
}
auth.service.ts:
@Injectable({
providedIn: 'root'
})
export class AuthService {
public isLoggedIn() {
const token = localStorage.getItem('authToken');
if (token !== 'undefined' && !this.jwtHelper.isTokenExpired(token)) {
return true;
}
return false;
}
}
user.service.ts:
@Injectable({
providedIn: 'root'
})
export class AuthService {
get(): Observable<AppUser> {
return super.getById(localStorage.getItem('userId'))
.pipe(map(s => ( {id: s.id, name: s['userName']
, isAdmin: s['isAdmin']})));
}
}
Не могли бы вы сказать мне, как я могу выполнить вызов API, когда только auth.isLoggedIn()
возвращает true
?