У меня есть следующий код:Подписаться на эмиттер событий, когда массив загружен
this.itemsService.getItems()
.subscribe(i => this.items = i);
Но, пользователь может выбрать тип элемента, поэтому у меня есть эмиттер событий для этого:
this.typeofitems.selectedType.subscribe(type => this.type = type);
и хорошо работает.
Теперь я хочу отфильтровать список предметов this.items
с filter function
. Проблема заключается в том, я не знаю, когда загрузка элементов завершена, Altough если я положил бревно в подписке:
this.itemsService.getItems()
.subscribe(i => {this.items = i; console.log("completed");});
это указывает мне, что это закончено. Поэтому я пробовал:
this.itemsService.getItems()
.subscribe(i => {
this.items = i;
this.typeofitems.selectedType.subscribe(type => {
this.type = type;
this.filterByType();
});
});
filterByType() {
this.itemsfilteredByType = this.items.filter(i => i.type === this.type)
}
Но он не работает. Поэтому я думаю, что не могу подписаться внутри подписи. Как я могу это достичь?
незадача: при изменении typeOfItems, он будет звонить в GetItems снова? – FacundoGFlores
@FacundoGFlores Почему бы вам не попробовать? Просто добавьте 'typeOfItems.next (1);' в конце и посмотрите, что произойдет. – martin