我正在构建一个Angular应用程序,我在理解RxJ以及如何使用它来解决我的问题时遇到了一些麻烦。
假设我有一个需要2个Item
对象的组件export class TemplateComponent {
private item1: Item;
private item2: Item;
constructor(private store: ItemStore) {
}
}
和Item类
export class Item {
name: string;
value: string;
}
如您所见,我还有一个项目数据存储
export class ItemStore {
public subscribedItems: Item[];
constructor(private httpService: ItemHttpService) {
}
public getSubscribedItems() {
this.httpService.getItems(this.subscribedItems)
.subscribe(response => {
this.subscriberItems = response;
}
}
}
ItemStore注入了一个服务,调用API来获取项目。
想法是有一个需要从API更新的订阅项列表,因此需要绑定到Items的每个组件都可以将它们的项添加到subscribedItems数组中,并且商店将从API获取新项不断。物品实际上是传感器数据,因此它们的价值会随着时间而变化,但它们的名称保持不变
是否有智能解决方案让我的TemplateComponent仅订阅item1和item2中的更改而不关心其余项目,或者我是否需要订阅subscribedItems数组然后过滤我的方式来获取item1和item2的新值?