【发布时间】:2018-12-05 16:25:04
【问题描述】:
我正在通过 http 加载项目列表并使用 BehaviorSubject 将更新从角度服务流式传输到组件。这些项目上有一个绑定到复选框的布尔值。
我希望另一个组件使用相同的服务并订阅相同的数据源,但只显示选中的项目。当初始数据加载时,下面的代码可以正常工作。但是如果第一个组件中的复选框被选中,它不会更新第二个组件。
我是否需要从检查的第一个组件手动更新对象并将其推回观察者?
Full example on stackblitz here
export class MyService {
private mySubject = new BehaviorSubject<MyModel[]>([]);
allObservable: Observable<MyModel[]> = this.mySubject.asObservable();
selectedObservable = this.allObservable.pipe(map(result => result.filter(f => f.selected)));
constructor() {
this.fundsSubject.next([
{ selected: true },
{ selected: false },
]);
}
}
export class MyModel {
public selected: boolean = false;
}
【问题讨论】:
-
你能在StackBlitz上复制这个吗?
标签: angular rxjs observable