我目前正在使用 Sencha Touch 构建一个应用程序。我们在包含多个项目的页面上有一个特定的轮播。单击不同面板上的按钮后,某些项目会添加到面板中或从面板中删除。
问题:第一次单击时一切正常,但再次单击相同按钮时,功能停止工作,轮播显示变为空白,没有任何项目可见。
下面是更改轮播内容的按钮的处理程序itemsCarousel
。该函数添加itemPanels[ b.getBadgeText() ]
到itemsCarousel
的项目。对于前四次左右的点击,效果很好。在那之后,当我单击一个按钮时,轮播中的所有项目都消失了,我无法添加或删除更多内容,即使从控制台手动调用轮播也是如此。
handler: function(b, e) {
itemsCarousel.insert(1, itemPanels[ b.getBadgeText() ]);
itemsCarousel.doLayout(); itemsCarousel.doComponentLayout();
itemsCarousel.setActiveItem(1);
itemsCarousel.remove(0, false);
}
我尝试过的事情:
- 通过在 slot 插入项目
0
,设置为0
active,然后删除来更改顺序1
。 - 在每一行上放置 javascript 断点,查看轮播在何处变为空白。有时它出现在
.insert()
语句中,有时出现在.remove()
. - 从控制台手动执行所有这些操作。
- 调整调用
autoDestroy
中的参数.remove()
(如上所示)和itemsCarousel
.
如果您需要更多代码,我可以发布您认为可能相关的任何内容,我不想用多余的代码污染这个线程。谢谢你的帮助!
编辑:如果有人知道重现相同功能的另一种方法,我也对此持开放态度。我在想也许创建一个带有一个项目的虚拟支架容器,一个旋转木马,并在单击按钮时删除整个旋转木马并重新添加一个全新的(带有新项目)?