<ion-slides #slide1 [options]="slidesOpts" (ionSlideTouchEnd)="slideTouchEnd()" (click)="onClickSlide()">
<ion-slide *ngFor="let item of bannerList" >
<img [src]="item.img" />
<div class="bannerIntro">
<div class="bannerIntroTitle">{{item.title}}</div>
<div class="bannerIntroNum">{{item.num}}</div>
</div>
</ion-slide>
</ion-slides>
onClickSlide() {
//这边最坑
this.slide1.getActiveIndex().then(index=>{
console.log(index);
let leng = this.bannerList.length;
if (index>leng) {
index=index-leng-1
}else{
index--;
}
console.log(index);
let item = this.bannerList[index];
console.log(item)
this.gotoNewsDetail(item)
});
}
slideTouchEnd() {
if (this.slide1) {
this.slide1.startAutoplay()
}
}
- 单击的时候click方法也会走ionSlideTouchEnd方法
- getActiveIndex()返回值是
Promise<number>,需要用then块接收,真的很麻烦
第一张图片只出现一次,之后出现的第一张图片的index是数组长度加一,如果items.length = 2;first.index = 3
- click方法第一次放在ion-slide中会没有响应