我有一个代理商店,通过两种不同的方式填写 - 通过loadData
或load
。
一旦商店被填满,我会采取某些行动;即,应搜索和选择某个记录:
preselectByName:function(name, groupName) {
var store = this;
if(store.preselected) return;
store.preselected = true;
store.on('load',function() {
store.selectByName(name, groupName);
store.preselected = false;
},store,{single:true});
}
这样叫:
if(store.isLoaded) store.selectByName(name, groupName);
else store.preselectByName(name, groupName);
如果商店通过load
填充,而不是通过loadData
填充此代码,则此代码可以正常工作。
load
和loadRecord
?答案 0 :(得分:1)
是一个从load
和loadRecord
触发的事件,但请注意,它会因对数据集所做的任何更改而触发。
此外:我通常使用它在ExtJs中找到我需要的事件:
Ext.util.Observable.capture(myObj, function(evname) {console.log(evname, arguments);})
它捕获由myObj
组件触发的所有ExtJs事件,并将其记录到控制台。
load
和loadData
之后手动触发,例如:store.on("负载",函数(){store.fireEvent(" myload")})
和
store.loadData(...)
store.fireEvent(" myload&#34)
然后
store.on(" myload",函数(){...})
答案 1 :(得分:1)
load事件专门用于从远程数据源读取数据。商店可以扩展到引入满足您要求的活动。
/*
@event loadrecords Fires whenever records a loaded into the store.
@param {Ext.data.Model[]} records An array of records
*/
Ext.define('MyApp.data.Store', {
extend: 'Ext.data.Store',
load: function() {
this.callParent(arguments);
this.fireLoadRecords();
return this;
},
fireLoadRecords: function() {
this.fireEvent('loadrecords', this.getRange());
},
loadRecords: function(records, options) {
this.callParent(arguments);
this.fireLoadRecords();
}
});
http://docs.sencha.com/extjs/6.2.0/classic/Ext.data.ProxyStore.html#event-load