【发布时间】:2017-05-13 13:46:36
【问题描述】:
我想在应用程序的主根组件中获取用户数据,然后在将用户数据存储到服务中后继续加载其他组件。我怎样才能做到这一点?目前,我有这样的事情:
@Injectable()
export class UserService {
user: Subject<User> = new BehaviorSubject(new User());
constructor(private _httpService: HTTPService){}
getUser(){
return this.user;
}
getUserFromAPI(){
this._httpService.get('user')
.map(data => data.json())
.subscribe(data => {
this.user.next(data);
});
}
但是通过这种方式,这意味着我需要通过我不想要的 Observable 让用户在所有其他地方。我想要一个静态访问。 目前,我正在获取用户:
this._userService.getUser().subscribe(data => {
this.user = data;
});
【问题讨论】:
-
“静态访问”是什么意思?
-
我的意思是我可以像this.user = _userService.getUser();这样在组件中获取用户数据
-
如果您使用异步调用获取数据,那是不可靠的。
-
是的,但请阅读问题。我想让用户加载暂停加载子组件,直到用户被存储到服务中。
-
这就是我下面的回答。
标签: angular