typescript - 最后一张幻灯片未调用 Ionic 5 Slides ionSlideDidChange

标签 typescript ionic-framework ionic4 ion-slides

我目前正在使用 ion-slides(在 Ionic 5 中)并且在获取最后一张幻灯片的选定幻灯片索引时遇到问题。这个问题发生在我将 slidesPerView 设置为 1.3 之后。

即使是 ionSlideDidChange 事件在我试图滑到最后一张幻灯片时也没有被触发(当我滑到其他幻灯片时事件被正常触发。)

<ion-slides #subscriptionSlider [options]="slideOpts" pager="true" (ionSlideDidChange)="ionSlideDidChange()">

我认为 Ionic 方面存在问题,因为如果我在最后一张幻灯片上,getActiveIndex 也会不正确(尽管它返回最后一张幻灯片索引)

有没有人遇到过这个问题?

最佳答案

使用 ionSlideTouchEnd 事件解决了问题

代码如下

<ion-slides #subscriptionSlider [options]="slideOpts" pager="true" (ionSlideTouchEnd)="ionSlideTouchEnd($event)">
...
</ion-slides>

// And then in ts file
ionSlideTouchEnd(event) {
    this.subscriptionSlider.getActiveIndex().then(index => {
      let realIndex = index;
      if (event.target.swiper.isEnd) {  // Added this code because getActiveIndex returns wrong index for last slide
        realIndex = this.subscriptions.length - 1;
      }
      // You can now use real index 
    });
  }

希望这可以帮助其他人遇到 Ionic 5 中 ionic 载玻片 active 指数的问题。

关于typescript - 最后一张幻灯片未调用 Ionic 5 Slides ionSlideDidChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62049214/

相关文章:

Array.prototype.sort() 的 Typescript 模型返回类型

css - .NET 中的 DataTemplateSelector 等效于什么?

angular - 我的硬件 'Back Button Action' 在 Ionic 4 中不工作

javascript - 如何获取文件属性并从 ionic 4 上传文件?

angular - 使用 Angular Monorepo 无法绑定(bind)到 'ngIf',因为它不是 'div' 的已知属性,并且 'my-selector' 不是已知元素

html - 如何在 ionic v4 的 item-native div 中编辑 "item-inner"类?

javascript - 在 Angular 中将图像转换为文件类型

javascript - typescript 标记联合未在 switch 语句中进行类型检查

angular - 如何在 Angular 2/4 Typescript 中顺序运行函数

angular - Ionic 3 输入掩码