【发布时间】:2019-09-22 09:06:26
【问题描述】:
尝试在点击侦听器上使用 Behavior Subject 进行订阅,并在首次加载订阅的组件时从服务中获取空对象;
ngOnInit() {
this.shareDataService.dataUpdate$.subscribe(success =>{
this.data = success;
})
}
我尝试过使用 observable 和 async 管道,结果是一样的。服务是providedIn: 'root'。如果订阅在ngOnChanges(changes: SimpleChanges) {} 生命周期钩子订阅在每次点击时触发,但总是有空对象。
我试图在stackblitz 上重现它,一切正常。对象从object-sender 组件发送到服务;
this.shareDataService.dataVisibility(this.data);
在receiver 组件中接收到对象,这是预期的行为,所以我不知道为什么应用程序中有空对象。
可能是什么问题?
【问题讨论】:
-
我没有完全理解这个问题,你能详细说明一下吗?你想做什么?预期的结果是什么?数据来自哪里?
-
尝试使用从组件一发送到服务的数据获取对象,并尝试使用订阅从服务获取组件二中的这些对象。在组件二中总是得到空对象,尽管在服务对象不是空的。
-
你能展示你实现主题的代码吗?
-
@Talg123 请查看 [subject.service] (stackblitz.com/edit/angular-kg4mg3)。有一个行为主体的实现,并且在服务(dataInfo)对象中记录在控制台中。
标签: angular rxjs observable angular-services behaviorsubject