我想从我的服务中调用具有间隔条件的组件方法。我尝试使用rxjs observable,但不知何故无法在组件中进行服务可观察的订阅,请帮助我,我在这里失踪了。提前致谢。 这是我的服务和组件代码片段。
服务:
private dateArray$: Subject < any > ;
public obserableObjects: {
setDateWatch$: Observable < any > ;
};
constructor() {
this.dateArray$ = new Subject < any > ();
this.obserableObjects = {
setDateWatch$: this.setDateWatch$.asObservable()
};
);
public initservice() {
this.dateArray$.next('test');
}
组件:
private dateInf$: Observable<any>;
constructor() {
@Inject(Service) private service: Service) {
this.dateInf$ = this.service.obserableObjects.setDateWatch$;
console.log(this.dateInf$);
console.log("***********************************");
this.dateInf$.subscribe((data) => {
console.log(data);
});
}
答案 0 :(得分:0)
@Meir指出你有一个错误;在服务构造函数中,更改
setDateWatch$: this.setDateWatch$.asObservable()
到
setDateWatch$: this.dateArray$.asObservable()
现在一切正常。你仍然没有看到任何输出,因为没有任何东西被推入Subject
。因此,将以下行添加到组件构造函数的底部,或者在您订阅之后的任何位置:
this.service.initService();