Extjs有条件地跳过存储加载
这个问题与另一个问题相关:Extjs有条件地跳过存储加载,extjs,Extjs,这个问题与另一个问题相关: 我的想法是: 如果有一个store,有两个函数(f1)和(f2),都调用store.load() 将同时调用f1和f2,并且不保证顺序。f1是否有办法检查f2是否已加载存储区(反之亦然),如果加载,则跳过f1的store.load命令 我要找的是一种方法,如: f1() { if (!store.isLoadedAsPartOfThisRequest() //true/false){ store.load(params); }
我的想法是: 如果有一个store,有两个函数
(f1)
和(f2)
,都调用store.load()
将同时调用f1
和f2
,并且不保证顺序。f1是否有办法检查f2是否已加载存储区(反之亦然),如果加载,则跳过f1的store.load
命令
我要找的是一种方法,如:
f1() {
if (!store.isLoadedAsPartOfThisRequest() //true/false){
store.load(params);
}
}
这可能吗?以下是我对这个问题的看法: 每个存储有两个布尔变量。两者最初都将设置为false(表示未加载存储) 现在,两个存储区都将有一个用于“加载”事件的侦听器方法。如果加载了存储,listener方法将简单地设置布尔变量 因此,在f1和f2中,您将检查布尔值调用reload。同时,您必须找到将布尔变量再次设置为false的位置和时间 我希望这对您有所帮助。使用store.getCount()肯定是一个粗糙的解决方案,如果加载的记录恰好没有,则会造成不准确 Sencha支持提出了一个: '检查应用商店中的lastOptions,如果存在,则说明您的应用商店至少加载了一次。'
lastOptions似乎不再是ExtJS4.1的一部分。作为一种解决方法,可以在存储加载覆盖中包含并设置“isLoaded”布尔值。是否可以使用
Store.getCount()
查看加载前存储中是否有任何记录?谢谢。为什么我们需要两个布尔人?1不会吗?