Невозможно проверить, пришел ли мой слайдер к последнему слайду или нет в Ionic4 - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю в своем приложении Ionic 4, и я добавил слайдер с помощью цикла, и я проверяю, добрался ли слайдер до последнего слайдера или нет, и я проверил, используя isEnd(), но он всегда показывает true.

Это мой intro.page.html :

<ion-slides #slides pager="true" parallax="true" spaceBetween="0">
    <ion-slide class="step-one" *ngFor="let item of splashdata">
    </ion-slide>
  </ion-slides>
  <p class="myp2" (click)="next()">{{ NextSlide }}</p>

В этом представлении я показываю ползунок в цикле, а также кнопкуДалее и закончить.Если слайдер дойдет до последнего слайда, он покажет конец, а другой будет показан следующим.

Это мои intro.page.t s:

export class IntroPage implements OnInit {
  @ViewChild('slides') slides: IonSlides;
  NextSlide: any;
  constructor() { }

  ngOnInit() {}

  ionViewWillEnter(){
    let me = this;
    me.slides.isEnd().then((istrue) => {
      console.log(istrue);
      if (istrue) {
        me.NextSlide = 'Finish';
      } else {
        me.NextSlide = 'Next';
      }
    });
  }

  next() {
    this.slides.slideNext();
  }
}

InЭтот файл TS, я проверил, используя isEnd(), но проблема в том, что он всегда показывает true.

Я хочу показать текст кнопки в соответствии со слайдами, если слайдер дойдет до последнегоНа слайде текст кнопки изменится, чтобы закончить, в противном случае он будет отображаться следующим для слайдов.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 04 апреля 2019

Сначала вы должны прослушать событие ionSlideWillChange() на ионном слайдере, затем вы можете проверить, заканчивается слайд или нет. Так что слушайте ionSlideWillChange() событие в ионных слайдах, как показано ниже:

<ion-slides #slides (ionSlideWillChange)="slideChanged()">
    ...
    ...
</ion-slides>

Теперь вы можете проверить, заканчивается слайд или нет в slideChanged() методе, подобном:

slideChanged() {
    let me = this;
    me.slides.isEnd().then((istrue) => {
      console.log(istrue);
      if (istrue) {
        me.NextSlide = 'Finish';
      } else {
        me.NextSlide = 'Next';
      }
    });
}
...