Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs有条件地跳过存储加载_Extjs - Fatal编程技术网

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不会吗?