2011-02-16 59 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