Sencha - store.each() - 数据不可用,它们只在数据类中很深

时间:2013-03-07 22:28:37

标签: extjs

我有:

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()返回corrent count(0 + add())。

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

1 个答案:

答案 0 :(得分:5)

存储加载是异步的,当您访问它时,它不会被加载。您需要收听商店加载事件。

类似的东西:

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

on() documentation

load event documentation