각도 응용 프로그램을 구축 중이며 RxJ를 이해하는 데 문제가 있으며 문제를 해결하는 데 사용하는 방법이 있습니다.RxJs - 배열의 특정 항목을 구독하십시오.
나는 또한 항목에 대한 데이터 저장소를 가지고,이 전 유형 항목
export class TemplateComponent {
private item1: Item;
private item2: Item;
constructor(private store: ItemStore) {
}
}
및 Item 클래스
export class Item {
name: string;
value: string;
}
당신이 볼 수있는 2 개 개체를 필요로하는 구성 요소가 있다고 가정 해 봅시다
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에서 업데이트해야하는 가입 된 항목의 목록을 가지므로 항목에 바인딩해야하는 각 구성 요소는 항목을 subscribedItems 배열에 추가 할 수 있으며 저장소는 새 항목을 API를 지속적으로 사용합니다. 항목은 실제로 센서 데이터이므로 값은 시간에 따라 변할 수 있지만 이름은 동일하게 유지됩니다
내 TemplateComponent가 item1 및 item2에서만 변경 사항을 구독하고 나머지 항목은 신경 쓰지 않아도되는 스마트 솔루션이 있습니까? 또는 subscribedItems 배열에 가입 한 다음 item1 및 item2에 대한 새 값을 가져 오는 동안 내 방법을 필터링해야합니까?
기본적으로, 내가 이해했는지 보도록하겠습니다. 주기적으로 업데이트를받을 항목 목록을 갖고 특정 구성 요소에서 업데이트를 받고 싶습니다. 배열의 2 번과 4 번 항목을 가정 해 봅시다. 나머지 항목은 어떻게됩니까? 그들은 다른 구성 요소에 의해 "요청"되지 않고도 업데이트를 받게됩니까? 또는 구성 요소가 구성 요소를 요청할 때만 업데이트를 받고 싶습니까? –
"열린"구성 요소에서 현재 사용중인 항목 만 요청해야하며, 구성 요소를 삭제할 때 열려있는 다른 구성 요소도 감시하지 않으면 해당 항목의 구독을 완료해야합니다. –