1

我有带有 totalCount 值的 json 响应。我在加载函数中获得了 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");
}
4

2 回答 2

4

这里的问题是该store.load函数是异步的。这意味着您的代码紧跟在调用之后将在函数返回load之前执行。load您的callback函数被调用比if语句执行晚得多。

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

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

于 2013-07-18T18:46:43.663 回答
3

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

于 2013-07-18T17:06:02.750 回答