我有一个覆盖:
//Renabled the refresh buttons once these stores have loaded data OK...
Ext.define('App.overrides.data.Store', {
override: 'Ext.data.Store',
onProxyLoad: function () {
switch (this.storeId) {
case 'store1':
case 'store2':
case 'store3':
case 'store4':
case 'store5':
Utils.getCmp('button[itemId=mainRefreshButton]').setDisabled(false);
Utils.getCmp('button[itemId=refreshButton]').setDisabled(false);
Utils.getCmp('button[itemId=refreshAccountButton]').setDisabled(false);
break;
}
this.callParent(arguments);
},
listeners: {
beforeload: function (store, operation, opts) {
//debugger;
switch (store.storeId) {
case 'store1':
case 'store2':
case 'store3':
case 'store4':
case 'store5':
Utils.getCmp('button[itemId=mainRefreshButton]').setDisabled(true);
Utils.getCmp('button[itemId=refreshButton]').setDisabled(true);
Utils.getCmp('button[itemId=refreshAccountButton]').setDisabled(true);
break;
}
return true;
}
}
});
onProxyLoad
覆盖适用于服务器代理。但是beforeload
侦听器只触发我立即加载的内存存储(存储有固定数据,如“是”/“否”数组数据)
当我执行store1.reload()
(带有服务器代理的商店)时,我永远不会到达侦听器代码。
有什么想法吗?感谢。
NB :我已在声明store1 / 2/3/4/5之前验证了覆盖运行。
答案 0 :(得分:0)
我最终覆盖了load
这样的方法:
//Renabled the refresh buttons once these stores have loaded data OK...
Ext.define('App.overrides.data.Store', {
override: 'Ext.data.Store',
onProxyLoad: function() {
switch (this.storeId) {
case 'store1':
case 'store2':
case 'store3':
case 'store4':
case 'store5':
Utils.getCmp('button[itemId=mainRefreshButton]').setDisabled(false);
Utils.getCmp('button[itemId=refreshButton]').setDisabled(false);
Utils.getCmp('button[itemId=refreshAccountButton]').setDisabled(false);
break;
}
this.callParent(arguments);
},
load: function() {
switch (store.storeId) {
case 'store1':
case 'store2':
case 'store3':
case 'store4':
case 'store5':
Utils.getCmp('button[itemId=mainRefreshButton]').setDisabled(true);
Utils.getCmp('button[itemId=refreshButton]').setDisabled(true);
Utils.getCmp('button[itemId=refreshAccountButton]').setDisabled(true);
break;
}
this.callParent(arguments);
}
});

现在我抓住每家商店的每次装载/重装。