我有一个工作用户注册,其中包含接口中的firstname和lastname等附加属性。我将其设置为Angular接口,并使用Angular2Token示例中的GET请求调用userdata,这将带回我所有数据。
export interface User {last_name: string, first_name: string}
auth.service.ts
user: User[];
getProfileData() {
return this._tokenService.get(this.userDataUrl + '.json')
.map(res => res.json()).subscribe(
data => {
this.userSignedIn$.next(true);
this.user = data.user;
console.log(data);
return data
},
error => {console.log(error)
}
);
}
我现在的想法是将JSON数据加载到一个配置文件页面,其中包含用户可以编辑其数据的表单。但是根据我的exisitng方法,我无法从界面访问数据。
profile.component.ts
getUserData() {
this.authService.getProfileData();
}
ngOnInit() {
this.getUserData();
}
如果有人能告诉我错过哪些内容来获取这些数据会很棒。谢谢!
答案 0 :(得分:1)
首先,如果要将用户缓存在提供程序中,则应使用.do()。
然后不要在服务中订阅您的服务调用,在组件中执行此操作以利用延迟加载。
getProfileData() {
return this._tokenService.get(this.userDataUrl + '.json')
.map(res => res.json())
.do(data => {
this.userSignedIn$.next(true);
this.user = data.user;
console.log(data);
return data
});
}
getUserData() {
this.authService.getProfileData().subscribe(.....).catch(...);
}