我想用Sencha Architect建立一个动态图像轮播。我有一个旋转木马添加到选项卡面板。传送带设置为从名为“pictureStore”的商店读取图像。我有一个功能,可以从商店中提取图像并创建轮播物品 - 我可以从商店获取图像,但无法创建轮播。当我尝试使用carouself.setItems()或carousel.add()时,出现错误“Object#has no method”。请看一下,让我知道如果我的方法是不正确的创建一个动态轮播。我感谢您的帮助,以及如何解决Sencha Touch 2 carousel.setItems()不工作
由于知识,
功能来读取图像,并创建旋转木马项目(工作,直到下面的评论):
onMycarouselActivate: function(container, newActiveItem, oldActiveItem, options) {
Ext.getStore('pictureStore').load(function(pictures) {
var items = [];
Ext.each(pictures, function(picture) {
console.log(picture.get('image'));
if (!picture.get('image')) {
return;
}
items.push({
xtype: 'myimage',
picture: picture
});
});
//following doesn't work for adding the carousel images:
//carousel.setItems(items);
//carousel.add(items);
//carousel.items = [{html: items}];
//carousel.add(carousel.items);
//carousel.setActiveItem(0);
});
},
样品JSON与图像信息
0123:使用carousel.add或carousel.setItems时{
"test": {
"cat": {
"entries": [
{
"image": "/images/1.png"
},
{
"image": "/images/2.png"
}
]
}
}
}
错误消息
当您通过架构师创建侦听器时,它会将容器作为第一个参数,除非架构师之外的代码,否则似乎没有办法改变它。我这样做,并能够通过错误,但图像仍然没有添加到旋转木马,虽然我看到旋转木马现在在屏幕上。我遵循这个例子,如果这有助于任何http://edspencer.net/2012/02/building-a-data-driven-image-carousel-with-sencha-touch-2.html – Arkady 2012-07-23 21:00:39
这只是一个变量名,所以如果建筑师将其命名为“容器”,然后在代码中使用容器。另请参阅我编辑的答案。 – 2012-07-23 21:07:58
再次感谢,我应用了您的更新,但仍无法显示图像。我试图通过调用carousel.doLayout()和Ext.getCmp('carousel')来强制更新。doLayout();在setItems()之后,但得到Object#的错误没有方法'doLayout'。我不确定这个问题是什么 –
Arkady
2012-07-23 23:35:11