使用Angular 2,我有一個處理認證的AuthService。我試圖找出用戶登錄/註銷時通知其他組件的最佳方式,但我不確定處理這種情況的正確方法。有什麼建議麼?謝謝!通知服務變更的角度2組件
2
A
回答
3
最好的方法是使用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);
}
}
相關問題
- 1. 組件,服務等的角度2服務注入
- 2. 通過添加空服務來削減角度2組件
- 3. 角度2更改另一個組件上的組件變量
- 4. 通知變化的角度
- 5. 通過服務中的可觀察角度2組件間的角度2雙向綁定
- 6. 角度2警報服務
- 7. 角2傳值內的服務組件
- 8. 提供角度2組件變量
- 9. 角度2組件通信混淆
- 10. 通過角度2中的多個組件訪問服務的屬性?
- 11. 測試與嘲笑服務的角度2組件
- 12. 角2莫代爾服務中插入動態(未知)組件
- 13. 如何在服務和通知組件中處理角度4 HttpClient的響應
- 14. 角2:通過服務來
- 15. 角2發送回調服務組件
- 16. 角度服務變量undefined
- 17. 角度跨服務溝通
- 18. 角度2通過組件鏈傳遞變量
- 19. .subscribe在角2通過服務從發佈到服務器的組件數據
- 20. 從角度服務到組件陣列
- 21. 角度2:當組件A更新更新組件B
- 22. 無法從另一個組件調用組件的角度2服務
- 23. 角度2,角度2通用差異
- 24. 角度2服務的清理代碼
- 25. Firebase託管服務中的角度2
- 26. 角2和rxjs服務主體沒有正在更新組件
- 27. 無法通過服務更新組件角色的angular4視圖
- 28. $ http服務的回調方法如何通知模型更改的角度?
- 29. 角組件時,服務更新
- 30. 角度服務從組件內部可觀察更新
有方法,它返回一個可觀察或承諾? – toskv