Javascript store.loadData是否在ExtJs 4.2.5上的存储上触发加载事件?

Javascript store.loadData是否在ExtJs 4.2.5上的存储上触发加载事件?,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,store.loadData是否在ExtJs 4.2.5上的存储上触发加载事件? 该文件规定: 但鉴于我所经历的情况,它看起来与实际情况不一样,而且还查看了源代码: loadData: function(data, append) { var length = data.length, newData = [], i; //make sure each data element is an Ext.data.Model instance

store.loadData是否在ExtJs 4.2.5上的存储上触发加载事件?

该文件规定:

但鉴于我所经历的情况,它看起来与实际情况不一样,而且还查看了源代码:

loadData: function(data, append) {
    var length = data.length,
        newData = [],
        i;

    //make sure each data element is an Ext.data.Model instance
    for (i = 0; i < length; i++) {
        newData.push(this.createModel(data[i]));
    }

    this.loadRecords(newData, append ? this.addRecordsOptions : undefined);
},
loadData:函数(数据,追加){
变量长度=data.length,
新数据=[],
我
//确保每个数据元素都是Ext.data.Model实例
对于(i=0;i
好的,那么可能loadRecords正在发射它,对吗

loadRecords: function(records, options) {
    var me     = this,
        i      = 0,
        length = records.length,
        start,
        addRecords,
        snapshot = me.snapshot;

    if (options) {
        start = options.start;
        addRecords = options.addRecords;
    }

    if (!addRecords) {
        delete me.snapshot;
        me.clearData(true);
    } else if (snapshot) {
        snapshot.addAll(records);
    }

    me.data.addAll(records);

    if (start !== undefined) {
        for (; i < length; i++) {
            records[i].index = start + i;
            records[i].join(me);
        }
    } else {
        for (; i < length; i++) {
            records[i].join(me);
        }
    }

    /*
     * this rather inelegant suspension and resumption of events is required because both the filter and sort functions
     * fire an additional datachanged event, which is not wanted. Ideally we would do this a different way. The first
     * datachanged event is fired by the call to this.add, above.
     */
    me.suspendEvents();

    if (me.filterOnLoad && !me.remoteFilter) {
        me.filter();
    }

    if (me.sortOnLoad && !me.remoteSort) {
        me.sort();
    }

    me.resumeEvents();
    if (me.isGrouped()) {
        me.constructGroups();
    }
    me.fireEvent('datachanged', me);
    me.fireEvent('refresh', me);
},
loadRecords:函数(记录、选项){
var me=这个,
i=0,
长度=记录长度,
开始
addRecords,
snapshot=me.snapshot;
如果(选项){
开始=选项。开始;
addRecords=options.addRecords;
}
如果(!addRecords){
删除me.snapshot;
me.clearData(真实);
}else if(快照){
snapshot.addAll(记录);
}
me.data.addAll(记录);
如果(开始!==未定义){
对于(;i
那里也没有开火


这是一个已知问题还是我遗漏了什么?
loadData
不会触发
load
事件,因为每当存储从远程数据源读取数据时,
load
事件就会触发()
loadData
使用其第一个参数中提供的local数据

您发现文档中有不准确之处。我在4.1.1版中跟踪了您的研究,在那里找不到触发
load
事件的
loadData

但是,
loadRawData
在4.1.1中用于触发
load
事件,但在4.2.5中不再触发。在中,您可以阅读:


从4.2开始,这个(loadRawData)方法将不再触发{@link#event load}事件。

相反,你可以依靠刷新事件,看看我创建的这个示例,它演示了如何使用它


!

关于我提到的链接和参数,似乎有人说它确实触发了加载事件。在以前的版本中,它也会启动它(4.1.1)。但是4.2.5上的情况似乎不是这样,尽管我认为文档中提出了相反的建议。我之前假设它被触发了,因为我所面临的不触发该事件的问题只出现在4.2.5上。。。但我认为这更像是医生的错误。