在Ionic + Angular中使用Swiper.js创建动态幻灯片,不追加新幻灯片

dkqlctbz  于 2022-12-08  发布在  Ionic
关注(0)|答案(1)|浏览(196)

我的滑动器是静态工作的,但是当我尝试添加新的幻灯片时,它就不工作了。

<swiper #slider (reachEnd)="end()" (swiper)="setSwiperInstance($event)" (slideChange)="loadNext()" [config]="config">
            <ng-template swiperSlide *ngFor="let emojiBlock of initalEmojiMessages">
  
              <ion-card class="emoji-card">
                <ion-card-content class="internal-card">
    
                      <div class="emoji-carrier">
                        <span class="emojis">{{emojiBlock.emojis}}</span>
                        <span class="emojis-words">{{emojiBlock.words}}</span>
                      </div>
                </ion-card-content>
              </ion-card>
              
            </ng-template>
          
        </swiper>

到达最后一张幻灯片后,end()的名称为:

end() {
    let index = this.swiper.swiperRef.activeIndex++;
    let newEmojis = this.getEmojiSet();
    this.initalEmojiMessages.push(newEmojis);
    this.swiper.swiperRef.appendSlide(`
    <ng-template swiperSlide>
      
      <ion-card class="emoji-card">
        <ion-card-content class="internal-card">
        <p>hello world ${index}</p>
        </ion-card-content>
      </ion-card>
    
    </ng-template>
    `)
  }

这个函数既可以向数组initalEmojiMessages中添加另一个表情符号,也可以通过this.swiper.swiperRef.appendSlide添加一张新幻灯片。
这是它实际运行时的样子:
在最后一张幻灯片上:

尝试转到下一张幻灯片:

正如您所看到的,新幻灯片没有锁定到位,并且appendSlide()方法有效,而添加ngFor方法无效。
有人经历过这个问题/知道如何在离子工作中使用swiper.js添加幻灯片吗?

8dtrkrch

8dtrkrch1#

我不确定这是否有帮助,但我在next.js中遇到了类似的问题。我发现一个CSS导致了这种异常,并与视图中的幻灯片数量结合在一起。我最终注解掉了所有的CSS,并慢慢地将其重新引入,以找到令人不快的样式。然后它就像一个梦一样工作。不确定这是否会帮助您解决问题,但如果您还没有“t尝试过这个,那么它可能是一个开始的地方。

相关问题