我的商店在渲染功能中创建,一个调用被触发,但我的需求调用应该有条件地触发,但是商店实例应该始终创建。
对于这个要求,我在渲染函数中使用以下代码来创建存储,
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 boolean flag false,而页面刷新调用没有被触发但Store实例创建成功, 但我有文本框,我正在搜索网格记录。当我在文本框中搜索任何文本时,我无法在网格中获取任何记录。
但是一旦booleanFlag为true,我就可以成功搜索结果。那么解决这个问题的最佳方法是什么?
答案 0 :(得分:0)
您的商店已将autoLoad设置为true,并且要强制商店不会一直自动加载,您可以使用beforeload事件来停止autoLoad。这个评估是否正确?
怎么样,而不是
Ext.create('mypage.store.customTreeGridStore', {
proxy:{
autoLoad: true,
},
listeners:{
beforeload: function(store, operation, eOpts) {
return booleanFlag;
}
}
})
仅在需要时删除autoLoad并在创建后加载商店?
var store = Ext.create('mypage.store.customTreeGridStore', {
proxy:{
autoLoad: false,
}
});
if(booleanFlag) store.load();