无法在组件中订阅角度服务方法

时间:2017-06-24 07:07:48

标签: typescript rxjs observable angular2-services

我想从我的服务中调用具有间隔条件的组件方法。我尝试使用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);
      });
    }

1 个答案:

答案 0 :(得分:0)

@Meir指出你有一个错误;在服务构造函数中,更改

setDateWatch$: this.setDateWatch$.asObservable()

setDateWatch$: this.dateArray$.asObservable()

现在一切正常。你仍然没有看到任何输出,因为没有任何东西被推入Subject。因此,将以下行添加到组件构造函数的底部,或者在您订阅之后的任何位置:

this.service.initService();