重新装入轮播项目

问题描述

| 我需要从轮播中重新加载项目(我单击了某个项目,面板被破坏,然后当我尝试返回时,需要重建轮播) 为此,我通过执行以下操作来删除轮播项目:
var len = cards.length;
for(var c = 0; c < len;c++)
this.myCarousel[0].items.remove(cards[0]);
然后我再次设置卡并再次设置轮播项目:
this.myCarousel[0].items.append(cards);
this.doLayout();
但是这样做之后,这些卡就没有正确放置,它们只是彼此叠写,没有轮播效果。卡片也开始在轮播工具栏下绘制,而不是在工具栏下面开始。 第一次加载卡片时,它可以很好地工作(当我从头开始构建轮播时),但是如果我删除以前的卡片并再次添加,它们将无法正确显示,我希望有人能为我提供帮助。 先感谢您     

解决方法

        对轮播本身进行添加和删除,因为它具有执行此操作的方法:
this.myCarousel.removeAll();
var items = [];
for (...) {
   items.push(<item def>);
}
this.myCarousel.add(items);
this.carousel.doLayout(); // Force the carousel to re-render
this.myCarousel.scrollToCard(0); // This will send the user back to the first card
如果在执行上述操作时用户使用的是另一张卡(例如,如果将其放置在方向检查中),则应将他们返回到正确的卡上,如下所示:
var curIndex = this.myCarousel.items.items.indexOf(this.myCarousel.layout.activeItem);
// Now do removing and adding
this.myCarousel.scrollToCard(this.myCarousel.items.items[curIndex]);
您必须使用索引,因为该项目将被删除。     ,        id仅应用于调试。有比使用id更好的方法来解析组件,这可能会给您带来麻烦。