【问题标题】:rxjs behavior subject set value from component来自组件的 rxjs 行为主题设置值
【发布时间】:2017-06-02 11:38:33
【问题描述】:

我正在努力实现以下目标:

我有一个服务 A,这个服务持有一个 rxjs 行为主体:

public publishedList:BehaviorSubject<Data> = new BehaviorSubject<Data>(null)

getlist():Observable<Data> {
return this.http.post(......).map((responseData) => {
 this.publishedList.next(responseData)
 this.publishedList.asObservable().share
 }
}

组件 A 在构造函数中使用 subscribe 监听这个行为主体。
这里没有问题。

现在组件 B 到位并持有一个按钮,该按钮应该能够清除或清空服务中的 publishedList,并且组件 A 应该被更新。

这可能吗?我如何做到这一点?

谢谢

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:

    将此方法添加到您的服务中

    setList(data:Data) {
      this.publishedList.next(data);
    }
    

    并从组件 B 调用它

    【讨论】:

    • 谢谢。有用。我不需要 this.publishedList.asObservable().share 吗?你能解释一下为什么吗?
    • angular.io/docs/ts/latest/cookbook/… 展示了如何使用 observables。通常不直接公开主题(如public),但this.publishedList.asObservable().share 应该在服务的构造函数中,并且您应该将其分配给不同的变量(例如带有$ 后缀。share 不会如果您只有一个订阅者,则不会产生太大影响。
    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多