无法检查我的滑块是否已到达 Ionic4 中的最后一张幻灯片

Rah*_*ani 1 ionic-framework ion-slides angular ionic4

我正在我的 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>
Run Code Online (Sandbox Code Playgroud)

在此视图中,我在循环中显示滑块,还显示下一步和完成按钮。如果滑块到达最后一张幻灯片,它将显示完成,否则它将显示下一张。

这是我的intro.page.t

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();
  }
}
Run Code Online (Sandbox Code Playgroud)

在此 ts 文件中,我已使用进行了检查,isEnd()但问题是,它始终显示 true。

我想根据幻灯片显示按钮文本,如果滑块到达最后一张幻灯片,按钮文本将更改为完成,否则它将显示幻灯片的下一张。

任何帮助深表感谢。

Kis*_*rda 6

首先你必须监听ionSlideWillChange()离子滑块上的事件,然后你可以检查幻灯片是否结束。因此,在 ion-slides 中监听ionSlideWillChange()事件如下:

<ion-slides #slides (ionSlideWillChange)="slideChanged()">
    ...
    ...
</ion-slides>
Run Code Online (Sandbox Code Playgroud)

slideChanged()现在,您可以使用以下方法检查幻灯片是否结束:

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