Можем ли мы использовать ngx-lightbox с конвейером asyn c? - PullRequest
0 голосов
/ 06 августа 2020

Перед тем, как переписать свой компонент, я хотел бы спросить, действительно ли это необходимо.

В официальной документации они создают объект «альбом», содержащий три свойства (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>

Сложная часть может быть "открытый" прослушиватель событий, который будет обращаться к массиву "альбомов", который они создали в конструкторе компонента ...

1 Ответ

0 голосов
/ 08 августа 2020

Хорошо, я сам отвечаю на это. Я подписался на наблюдаемое в компоненте и построил этот массив. Кажется, тогда это единственный выход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...