Поскольку название определенно не соответствует моим намерениям, вот что я пытаюсь сделать.
Я хочу отобразить список элементов в представлении, которое я получаю асинхронно от серверной части (у меня есть служба с методом fetchItems()
для их извлечения с типом возврата Observable<Item[]>
).
Я инициализирую этот список в компоненте конструктор, установив this.items = this.itemService.fetchItems();
.
Я отображаю этот список элементов в представлении, выполнив *ngFor="let item of items | async"
.
Пока все хорошо, все работает как надо.
У каждого элемента есть поле subItemId
. Я хочу использовать этот ключ для отображения в вышеупомянутом списке фактического объекта подэлемента типа SubItem
. Я могу получить этот элемент через this.subItemService.findById(subItemId)
, который возвращает Observable<SubItem>
.
Как мне это сделать?
Очевидно, что у меня не может быть метода компонента, такого как getSubItem(item: Item): SubItem
, который я вызываю из шаблона, так как он будет вызываться снова и снова.
Я не хочу модифицировать метод itemService.fetchItem()
, чтобы жадно загружать подэлементы, поскольку они могут не быть нужным везде, где они используются.
Ответ может быть очевиден, но я работаю с Angular (6) всего пару дней.