0

我是 Sencha Touch 的新手,所以我仍然在为商店的使用而苦苦挣扎。

我创建了这个商店,我成功地使用它来填充列表:

Ext.define('EventApp.store.events',{ 
        extend: 'Ext.data.Store',

        config: {
            model: 'EventApp.model.event',
            autoLoad: true,
            storeId: 'events',
            proxy:{
                type:'ajax',
                url: './resources/EventData.json',
                reader: {
                    type: 'json',
                    rootProperty: 'events'
                }
            }

            }

});

正如我提到的,当从列表中引用时,这家商店可以正常工作,我可以显示它的内容。因此,我假设商店已正确定义。

不幸的是,当我尝试从控制器访问商店以获取我的一个视图(将用于填充轮播项目)时,我似乎没有从商店中获取任何数据。我正在使用的代码如下:

onEventCarouselInitialize : function(compon, eOptions) {
    var past = compon.getPast();
    var eventsStore = Ext.getStore('events');
    eventsStore.each(function(record){
        console.log('Record =',record); //<-- this never gets executed.
    },this);
}

我曾尝试在 eventsStore.sync() 上执行 eventsStore.load(),但我似乎从未在商店中获得任何可用元素。

我错过了什么?

谢谢奥里奥尔

4

1 回答 1

1

我所了解的是,您的商店数据可能在您访问时尚未加载。所以把你的 each() 函数放在这个里面,以延迟 500 毫秒:

Ext.Function.defer(function(){
    // Put each() here
}, 500);

或多或少地延迟尝试一下。

于 2013-10-31T07:09:15.307 回答