【发布时间】:2019-08-11 01:37:25
【问题描述】:
我有变量服务和将数据带入该变量的方法
export class UserService {
userDetails;
getUserProfile(){
return this.http.get(this.BaseURI+'/UserProfile').subscribe(
res=>{
this.userDetails=res;
// console.log(res);
},
err=>{
console.log(err);
}
);
}
现在我想在变量更改时从组件中检查并读取它。我该怎么做?
更新。
export class UserService {
userDetails;
getUserProfile(){
this.http.get(this.BaseURI+'/UserProfile').subscribe(
res=>{
this.userDetails=res;
},
err=>{
console.log(err);
}
)
}
在组件中我有这个:
ngOnInit() {
this.service.userDetails.subscribe((userDetails) =>this.userDetails=userDetails)
}
现在当我运行应用程序时,组件中出现错误:
AppComponent.html:2 错误类型错误:无法读取属性“订阅” 未定义的
【问题讨论】:
-
创建一个Subject并在
userDetails变化时给它加值,订阅组件中的Subject? -
你能写出这样的答案吗?我是角度新手
-
是的,所以在我这样做之前,您最终需要
userDetails吗?在你的组件中?还是在服务中? -
userDetails 已在服务中声明。并且服务具有将新数据获取到该变量中的方法。我需要的是从组件监听到变量的变化。如果它改变了将数据抓取到组件。所以在组件中,我希望在更改事件时使用相同的 userDetails 变量更新表单服务变量。
标签: angular variables service components