【发布时间】:2018-03-14 01:31:07
【问题描述】:
我有一些表的默认数据,该表由服务获取并存储在 behaviorSubject 中。用户可以选择通过在表单中输入字段来向表中添加更多行。如何更新 Observable 以包含用户创建的数据?或者有没有更好的方法来更新数据?
我试图获取当前 b.s. 的值。并连接新项目,然后使用 next() 更新 b.s.但我无法让它工作。
编辑
vincecampanale 有一些优点并帮助我移动代码,但现在我只是得到一个“currentItems.concat 不是函数错误”,即使它被初始化为一个数组,我还缺少什么?
更新代码:
defaults = this.http.get(this.url);
private defaultItems = new BehaviorSubject<any>(this.defaults);
items = this.defaultItems.asObservable();
addItem(item: object) {
let currentItems = [];
currentItems = this.defaultItems.getValue();
let updatedItems = currentItems.concat(item);
this.defaultItems.next(updatedItems);
}
【问题讨论】:
-
您不应该在
next()方法中提供updatedItems变量而不是product?
标签: angular observable behaviorsubject