使用Angular 2,我有一个处理身份验证的AuthService。我正在尝试找出用户登录/注销时通知其他组件的最佳方法,但我不确定处理此方案的正确方法。有什么建议?谢谢!
答案 0 :(得分:5)
最好的方法是使用 BehaviorSubject 。
class AuthService {
private _isLoggedIn:Subject<boolean> = new BehaviorSubject<boolean>(false);
getUser() {
return !!localStorage.getItem('user');
};
isLoggedIn() {
this.getUser() && this._isLoggedIn.next(true);
!this.getUser() && this._isLoggedIn.next(false);
return this._isLoggedIn.asObservable();
}
}
//在您的组件中
class NavComponent {
constructor(private AuthService: AuthService) {
this.AuthService.isLoggedIn().subscribe(status => this.isLoggedIn = status);
}
}