尝试在服务中创建一个observable,在组件中使用它,并在另一个组件angular 4中订阅它

时间:2017-11-29 00:38:28

标签: angular typescript angular2-observables

我正在尝试在服务中创建一个observable。

然后在一个组件中使用它并在另一个组件中订阅它。已经完成导入,并设置已经完成的提供者数组,只关注观察者的东西

服务代码:

selectedcityobs = Observable.create;

发送信息的组件:

city;

this.venueservice.selectedcityobs obs =>{
obs.next(city);
}

接收信息的组件。

 this.venueservice.selectedcityobs
   .subscribe(
    (city:any) 
     data =>{
     this.city = data;
     });

现在很可能我的语法已经过时了,我正试图填补这些漏洞。我不是在寻找疯狂的语法我只是在寻找正确的方法来做到这一点。

我看到了这个答案,令人困惑,没有帮助:Angular2 components fail to communicate via observable in a service

当我尝试将信息传递给此可观察者时出现错误:

this.venueservice.selectedcityobs
        obs =>{
          obs.next(this.city);
        }

错误:此检查报告的表达式语句不是分配或调用。这些语句没有可疑的语义,通常是程序员错误的结果。

1 个答案:

答案 0 :(得分:0)

使用新数据“更新”observable:

this.venueservice.selectedcityobs.next(city);

订阅observable:

this.venueservice.selectedcityobs
   .subscribe(data => this.city = data);