我想在轮播onPainted()
方法中重新加载项目。因此,每当用户来到旋转木马项目时,我们就会有一个新的旋转木马项目列表。此时出现问题(请查看源代码),轮播重新加载项目,但是直到我触摸旋转木马,第一个轮播项目为空白(或未选中)且未选择任何项目。我想至少看到要选择的第一个元素。
所以这是简化的源代码:
Ext.define("APN.view.FeaturedCarousel", { config: { listeners: { painted: function(carousel, eOpts) { var features_url = Ext.getStore("regionalisation").getRegionalisedMenus().feature.url; this.setCarouselStore(features_url); } } }, initialize: function () { this.callParent(); var me = this; var features_url = Ext.getStore("regionalisation").getRegionalisedMenus().feature.url; this.setCarouselStore(features_url); }, setCarouselStore: function (features_url) { var me = this; Ext.Ajax.request({ url: features_url, success: function (response) { me.removeAll(); if (!xml) return; var store = Ext.create('Ext.data.Store', { autoLoad: true, fields: [ ], data: xml, proxy: { type: 'memory', reader: { type: 'xml', rootProperty: 'xml', record: 'item' } } }); store.each(function (record) { var item = Ext.create("Ext.Container", { html: "some HTML HERE" }); me.add(item); }); } }); } });
答案 0 :(得分:1)
我认为一旦添加了所有项目,您应该激活轮播中的第一项。像这样:
store.each(function (record) {
var item = Ext.create("Ext.Container", {
html: "some HTML HERE"
});
me.add(item);
});
me.setActiveItem(0);
这应该选择第一个项目。
如果您想在每次激活时更改轮播内容,请使用“active
”侦听器。因为“painted
”只会被调用一次,如果你想要,那么添加painted
事件就没有意义,因为你已经在“{{1”中调用了“setCarouselStore
”函数“方法。