商店有数据后触发的事件
Event that fires once the store has data
我有一个通过两种不同方式填充的代理商店 - 通过 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
是否同时触发了另一个事件?
- 我还能如何实现一个侦听器来触发这两个事件中的任何一个,以先到者为准?
是一个事件,由 load
和 loadRecord
触发,但要小心,它会因对数据集所做的任何更改而触发。
此外:我通常使用它来在 ExtJs 中查找我需要的事件:
Ext.util.Observable.capture(myObj, function(evname) {console.log(evname, arguments);})
它捕获由 myObj
组件触发的所有 ExtJs 事件并将其记录到控制台。
- 或者您可以创建一个自定义事件,您可以在
load
和 loadData
之后手动触发该事件,例如:
store.on("load",function(){store.fireEvent("myload")})
和
store.loadData(...)
store.fireEvent("myload")
然后
store.on("myload",function(){...})
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
我有一个通过两种不同方式填充的代理商店 - 通过 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
是否同时触发了另一个事件?- 我还能如何实现一个侦听器来触发这两个事件中的任何一个,以先到者为准?
是一个事件,由 load
和 loadRecord
触发,但要小心,它会因对数据集所做的任何更改而触发。
此外:我通常使用它来在 ExtJs 中查找我需要的事件:
Ext.util.Observable.capture(myObj, function(evname) {console.log(evname, arguments);})
它捕获由 myObj
组件触发的所有 ExtJs 事件并将其记录到控制台。
- 或者您可以创建一个自定义事件,您可以在
load
和loadData
之后手动触发该事件,例如:
store.on("load",function(){store.fireEvent("myload")})
和
store.loadData(...)
store.fireEvent("myload")
然后
store.on("myload",function(){...})
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