Ionic4 ion-slide, нерабочее свойство при включенной конфигурации l oop - PullRequest
1 голос
/ 19 февраля 2020

При простом воспроизведении

config = {
...
loop: true,
...
}

<ion-slides (options)="config">
  <ion-slide *ngFor="let item of [1, 2, 3]">
    <div (click)="clickedMe()">Content goes here</div>
  </ion-slide>
</ion-slides>

clickMe() {
  console.log('hey me clicked');
}

L oop не работает должным образом. На самом деле из-за l oop мы должны увидеть 4-й элемент (который на самом деле первый), но событие щелчка не срабатывает.

Любая подсказка?

1 Ответ

1 голос
/ 20 февраля 2020

У меня есть хитрое решение.

@ViewChild('slides') slider: IonSlides;
...
slideDidChange(event) {
  // first and last slides are duplicate slides
  this.slider.getActiveIndex()
    .then(async (activeIndex: number) => {
      const slideCount = await this.slider.length();
      if (activeIndex === slideCount - 1) {
        this.slider.slideTo(1, 0);
      }
      if (activeIndex === 0) {
        this.slider.slideTo(slideCount - 2, 0);
      }
    });
}

<ion-slides [options]="config" (ionSlideDidChange)="slideDidChange($event)" #slides>
...