第一个问题,让我轻松一点吧!
我希望在Angular2中构建一个共享服务,该服务提供一个可观察的属性,可由应用程序中的组件订阅。
另外,我希望设置它,以便数据是从组件而不是通过HTTP调用提供的。我已经找到了设置示例,其中它使用DB作为CRUD操作的数据源,而不是在组件中创建数组或对象的位置。
一个简单的例子如下:
有没有人知道一个很好的解释,或者有这个用例的例子?
谢谢!
发布于 2017-01-12 08:52:20
这是非常常见的用例,您可以这样做。
1)在服务构造函数中初始化可观察到的
this.myObservable = new Subject();
根据你想要达到的目标,你可以使用不同的观察仪器。Subject
既是可观察的,也是观察者的,它将返回订阅的最新价值。
2)在源组件中推送新值
myService.myObservable.next({...});
您还可以通过服务类中的setter来完成此操作,这样您就可以在将数据推入流之前修改它。
3)在您的消费类中,订阅流
myService.myObservable.subscribe(value => ...);
您可以在任意多个组件中订阅它。当您订阅时,您将立即获得最新的值,然后在更新时获得新的值。
如果希望具有初始值,则在初始化服务中可观察到的值时,可以使用BehaviorSubject
而不是Subject
。
https://stackoverflow.com/questions/41603314
复制相似问题