2017-01-12 18 views
0

我的商店在render函數中創建了一個調用被觸發,但我的需求調用應該有條件地觸發,但store實例應該始終創建。如何在商店創建時限制消防通話

對於這個要求我使用以下爲創建商店渲染功能代碼,

Ext.create('mypage.store.customTreeGridStore', { 
    storeId: 'myStore', 
    proxy: { 
     type: 'rest', 
     startParam: undefined, 
     filterParam: undefined, 
     sortParam: undefined, 
     paramsAsJson: true, 
     limitParam: 'pageSize', 
     pageParam: 'pageNo', 
     restService: 'rest', 
     restOperation: 'getOperation', 
     url: me.urlparams, 
     autoLoad: true, 

     actionMethods: { 
      read: 'POST' 
     } 
    } 
}); 

,我在商店裏添加監聽

beforeload: function(store, operation, eOpts) { 
    return booleanFlag; 
} 

當頁面加載我能得到beforeLoad布爾標誌假而頁面刷新調用沒有被激發,但存儲實例創建成功, ,但我有我正在搜索網格記錄的文本框。當我在文本框中搜索任何文本時,我無法在網格中獲取任何記錄。

但是一旦booleanFlag爲true,我可以成功地在網格中搜索結果。那麼解決這個問題的最好方法是什麼?

回答

0

您的商店將autoLoad設置爲true,並強制商店無法一直自動加載,您可以使用beforeload事件停止autoLoad。這個評估是否正確?

怎麼樣,而不是

Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: true, 
    }, 
    listeners:{ 
     beforeload: function(store, operation, eOpts) { 
      return booleanFlag; 
     } 
    } 
}) 

刪除自動加載和加載僅在必要時創建後的店嗎?

var store = Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: false, 
    } 
}); 
if(booleanFlag) store.load(); 
+1

爲什麼在代理上指定_autoLoad_配置?它不是商店配置嗎? – scebotari66