使用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