我正在使用extjs 4.1商店。看起来像这样:
Ext.define('myStore', {
extend: 'Ext.data.Store',
requires: ['myModel'],
autoLoad: false,
proxy: {
type: 'ajax',
url: '/aaa/bbb',
timeout: '90000',
reader: {
type: 'json',
root: 'data'
}
},
listeners: {
'beforeload': function (store, options) {
},
'load': function (store, options) {
}
},
sorters: [{
property: 'SortOrder',
direction: 'ASC'
}]
});
最初我通过代理加载数据。稍后基于用户交互,我将从商店中提取数据store.proxy.reader.rawData
并将其存储在某个变量中。
然后在稍后阶段,我将使用loadRawData()
从变量加载到商店。
调用loadRawData()时,它还会触发加载事件。
我想要的是什么:我想区分由于代理首次加载数据而导致的加载事件与因loadRawData()而导致的加载事件。
答案 0 :(得分:0)
升级到ExtJS版本5.1允许您访问store.loadCount,它可以让您检查这是第一次加载还是后续加载。 http://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.data.Store-property-loadCount
如果您不想升级,可以手动实现此功能(例如,在'load'侦听器中增加商店中的自定义变量)并检查它以查看您要执行的行为。