我是extjs的新手,正在根据Ext.data.store()中的记录来创建动态屏幕; getTotalCount / getCount用于获取商店中的记录数。我需要在var中存储总记录数并将其返回
我正在尝试做这样的事情
function Get_count()
{
var num;
CacheStore.on({
'load':{
fn : function(store,records,options){
num = getTotalCount();
//console.info('Store count = ', tsize);
//console.info(' count = ', getCount());
},
scope: this
},
'loadexception' : {
fn : function (obj,options,response,e){
//console.info('error = ', e);
},
scope : this
}
});
// this is a wrong logic but have to do something similar
//return num; //return num
};
tsize = Get_count();
我总是在tsize中得到null。我也试过getCount()而不是getTotalCount(),但我遇到了同样的问题。
不知道我哪里出错了
答案 0 :(得分:1)
你的逻辑在这里有点刺痛。您无法触发将向商店添加侦听器的函数,该商店将在商店加载完成时挂钩。 (嗯,你可以,但这是一个微妙的错误)。
您需要做的是在创建时在商店中声明一个侦听器,其中包含您想要使用该数字的函数。
cacheStore =Ext.create...
cacheStore.on('load',function(store,records,e){
//dosomestuff that needs the count
var num= store.totalCount()
//now you use the num in here, else you create an async error
//or you can ...
my.someFunc(num);
//in here, but you can only run it after the store has loaded
},this);