Перед тем, как переписать свой компонент, я хотел бы спросить, действительно ли это необходимо.
В официальной документации они создают объект «альбом», содержащий три свойства (sr c, caption, tumb)
Очевидно, что метод «open» ожидает этого.
Как уже упоминалось, я не подписываюсь на наблюдаемые объекты API в компоненте, я просто передаю их asyn c pipe:
course$: Observable<Course>;
this.course$ = this.courseService.getSingle(this.courseId);
(...)
<ng-container *ngIf="course$ | async as course; else loading">
Я имею в виду, что с документацией все в порядке. Я мог бы просто подписаться на компонент и построить этот массив альбомов ... Однако перед тем, как сделать это, мне интересно, есть ли способ сохранить мое текущее решение.
Курс $: Observable; также содержит массив объектов, но выглядит иначе:
export interface Course {
id: number
images?: Image[];
}
export interface Image {
id: number;
imageURL: string;
description: string;
}
Моя цель - создать что-то похожее на описанное в документации (простая часть)
<div *ngFor="let image of course.images; let i=index">
<img [src]="image.imageURL" (click)="open(i)" />
</div>
Сложная часть может быть "открытый" прослушиватель событий, который будет обращаться к массиву "альбомов", который они создали в конструкторе компонента ...