我有使用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");
}
答案 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,因此当您评估它时,这就是值。将控制台记录移动到回调函数中以验证这一点。