2011-02-16 21 views
0

这个问题是涉及到另一个问题:
EXTjs gridfilter: How to clearfilter without reloading store?ExtJS的跳过店负载条件

我的想法是:如果1个店,并且有两个函数(F1)和(F2)和两个呼叫store.load ()。
f1和f2都会被调用,并且不保证顺序。有没有办法让f1检查store是否已经被f2加载(反之亦然),如果加载了,则跳过store.load的f1命令。 我在找什么方法是:

f1(){ 
if (! store.isLoadedAsPartOfThisRequest()//true/false){ 
store.load(params); 
} 
} 

这可能吗?

+0

您可以使用`store.getCount()`来查看商店在加载之前是否有任何记录吗? – 2011-02-16 16:28:33

回答

1

使用store.getCount()当然是一个粗略的解决方案,如果加载的记录碰巧没有,就会产生不准确的结果。

煎茶支持提出了solution

“检查商店lastOptions,如果存在,那么您的店铺已加载至少一次。”

看来lastOptions不再是ExtJS 4.1的一部分。作为一种解决方法,可以包含并设置“isLoaded”布尔值作为存储加载覆盖的一部分。

0

以下是我对此问题的看法: 对每个商店都有两个布尔变量。两者都将初始设置为false(意味着商店未加载)。

现在,这两家商店都会为“加载”事件设置侦听器方法。如果商店被加载,监听器方法将简单地设置布尔变量。

因此,在您的f1和f2中,您将检查布尔值调用reload。与此同时,您将会找到何时何地将布尔变量再次设置为false。

我希望这可以帮助你。

+0

谢谢。为什么我们需要2个布尔值? 1不会做? – Victor 2011-02-16 16:33:18