我想用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