2

我有:

Ext.define("catcher.view.Login", {
   extend: "Ext.form.Panel",
// creating login form, including selectfield

商店“锦标赛”是在商店中创建的 (autoload:true),有它的模型。一切都设置好了。需要动态填充selectfield(还在view.Login类中):

initialize: function(){
        var store = Ext.getStore("Tournaments");        
        var options = new Array();
        store.each(function(radek){
            options[radek.get("tournament_id")] = radek.get("tournament_name");
        });
    }

我不想使用store:"Tournaments"配置选项,因为后来 form.submit(); 不从 发送正确的数据selectfield

有问题: console.log(store.getCount());返回 0。使用store.add({ ... })我可以添加任何东西,getCount() 返回正确的计数 (0 + add())。

奇怪的部分:console.log(store)返回整个类,包括data包含所有项目的对象。下一个奇怪的部分 - 如果我在控制器中使用相同的代码,一切正常,存储正确加载,我可以使用 mystore.each();

4

1 回答 1

5

商店加载是异步的,当您访问它时,它还没有加载。您需要监听商店加载事件。

就像是:

store.on('load', function(storeRef, records, successful){
    //Loop through records
}, this);

on() 文档

加载事件文档

于 2013-03-07T23:05:34.000 回答