如何在不使用extjs4.1中的加载函数的情况下从商店获取记录

时间:2013-07-18 16:35:58

标签: extjs extjs4.1 sencha-architect

我有使用totalCount值的json响应。我在load函数中获取totalCount值。我在加载商店之前在控制器中创建商店If(totalCount> 0)。它正在执行else条件。任何人都可以告诉我如何加载商店和检查条件吗?是否可以从没有加载功能的字段中获取记录?

var totalCount=0;
store.load(
    { 
        scope: this,    
        callback: function(records, operation, success) {  
             totalCount = records[0].data.totalCount    
        }
    }
);

if (totalCount > 0) {
    console.log("record found");
} else {
    console.log("record not found");
}

2 个答案:

答案 0 :(得分:4)

这里的问题是store.load函数是异步的。这意味着紧跟load调用之后的代码将在load函数返回之前执行。调用callback函数的时间要晚于执行if语句。

要在API的帖子标题中回答您的实际问题:http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.data.Store

根据您的需要,您可以使用任意数量的方法:.getRange()来获取数组,或.each()立即迭代记录。

答案 1 :(得分:3)

看起来您对totalCount的评估可能在执行加载回调之前发生。由于在加载商店的调用之前将totalCount初始化为0,因此当您评估它时,这就是值。将控制台记录移动到回调函数中以验证这一点。