我正在通过 http 加载项目列表,并使用BehaviorSubject 将更新从角度服务流式传输到组件。这些项目有一个布尔值,它绑定到一个复选框。
我希望另一个组件使用相同的服务并订阅相同的数据源,但只显示选中的项目。当初始数据加载时,下面的代码可以正常工作。但是,如果选中第一个组件中的复选框,则不会更新第二个组件。
我是否需要在检查时手动更新第一个组件中的对象并将其推回到观察者中?
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;
}
Run Code Online (Sandbox Code Playgroud)