我想在用户登录时显示div,而在未登录时隐藏它。为此,我尝试在视图中使用可观察对象并使用异步管道。仅当使用F5刷新页面时,该功能才有效。看来,观测站运作不佳。这是我到目前为止所做的
在我创建的服务中
public loggedInObs: BehaviorSubject<boolean>;
constructor(private oauthService: OAuthService) {
this.loggedInObs = new BehaviorSubject<boolean>(false);
}
/** get authenticat state */
public isAuthenticated(): Observable<boolean> {
return from(this.oauthService.getAccessToken())
.pipe(
map(result => {
console.log("logged")
this.loggedInObs.next(true);
return true;
}),
catchError(error => {
console.log("Non Loggato")
this.loggedInObs.next(false);
return of(false);
})
);
}
在app.component.ts
中 isLoggedIn$: Observable<boolean>; // the observable
ngOnInit(): void {
this.isLoggedIn$ = this.authService.isAuthenticated().pipe();
}
这是视图
<div *ngIf="isLoggedIn$ | async"></div>
<div>Hello World</div>
我真的不明白