首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子4: getActiveIndex()不适用于离子幻灯片

离子4: getActiveIndex()不适用于离子幻灯片
EN

Stack Overflow用户
提问于 2019-01-05 14:34:12
回答 7查看 9.1K关注 0票数 3

使用离子4离子幻灯片,我正在尝试使用getActiveIndex()获得当前点击的淤泥指数,因为它在下面不起作用。

代码语言:javascript
复制
<ion-slides #testSlider (ionSlideTap)="getIndex()">
 <ion-slide>....</ion-slide>
</ion-slides>


@ViewChild('testSlider') slider: ElementRef;  // first way

getIndex() {
     this.slider.nativeElement.getActiveIndex();
}


@ViewChild('testSlider') slider: Slider; //second way

getIndex() {
     this.slider.getActiveIndex();
}

下面的另一种方法也不起作用:

代码语言:javascript
复制
<ion-slides #testSlider (ionSlideTap)="getIndex(testSlider)">
 <ion-slide>....</ion-slide>
</ion-slides>


getIndex(testSlider) {
     testSlider.getActiveIndex();
}

有谁能建议我如何在离子4中获得活动索引当前单击的幻灯片索引

EN

回答 7

Stack Overflow用户

发布于 2019-01-28 14:17:14

我也遇到了同样的问题,但设法解决了以下问题:

代码语言:javascript
复制
export class SomePage implements OnInit {
  ...
  currentIndex:Number = 0;
  ...

  getSlideIndex(){
   this.slides.getActiveIndex().then(
     (index)=>{
       this.currentIndex = index;
    });
  }
  ...
  this.getSlideIndex();
  console.log(this.currentIndex);

注意,虽然它似乎有效,但我怀疑由于该值是在允诺内部更改的,因此只有在最近没有更改的情况下,它才会返回正确的值。因此,我打算对此进行更新,实现一个等待,以解决这一问题。

票数 3
EN

Stack Overflow用户

发布于 2019-10-17 06:41:12

内模板

代码语言:javascript
复制
<ion-slides pager="true" (ionSlideDidChange)="slideChanged($event)" #slides>
</ion-slides>

在组件中

代码语言:javascript
复制
import { IonSlides } from '@ionic/angular';

@ViewChild('slides', {static: true}) slides: IonSlides;

slideChanged(e: any) {
    this.slides.getActiveIndex().then((index: number) => {
        console.log(index);
    });
}
票数 3
EN

Stack Overflow用户

发布于 2020-12-11 09:48:08

根据文献资料getActiveIndex()返回一个Promise<number>

所以通过使用ionSlideTap

代码语言:javascript
复制
<ion-slides (ionSlideTap)="onSlideTapped($event)">
    ...
</ion-slides>

我找到了两种方法:

  • 正如凤头所建议的,您可以使用then()检索其值。我也是用async/await做的: 异步onSlideTapped(事件:任意){ const索引: number =等待event.target.getActiveIndex();console.log(索引);}
  • 也可以使用swiper对象: 事件(onSlideTapped: any) {onSlideTapped}

因此,您不必侦听每个更改,也不必在组件中导入IonSlides

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54053019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档