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。
我想根据幻灯片显示按钮文本,如果滑块到达最后一张幻灯片,按钮文本将更改为完成,否则它将显示幻灯片的下一张。
任何帮助深表感谢。
首先你必须监听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)