我需要从我的旋转木马重新加载项目(我点击了一个项目,一个面板被破坏,然后当我尝试返回时,我需要重建旋转木马)
为此,我通过以下方式移除旋转木马的物品:
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();
但是在这样做之后,卡片没有设置正确,它们只是相互叠加,没有轮播效果。卡也开始在转盘的工具栏下绘制,而不是从工具栏下面开始。
第一次加载卡片时它完全正常工作(当我从头开始构建旋转木马时),但如果我删除以前的卡片并再次添加它们,它们就无法正常显示,我希望有人可以帮助我。
提前谢谢
答案 0 :(得分:3)
在旋转木马本身上添加和删除,因为它有方法来执行此操作:
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]);
您必须使用索引,因为该项目将被删除。
答案 1 :(得分:0)
id应仅用于调试。有更好的方法可以解决组件,而不是使用可能让您遇到麻烦的ID。