我正在寻找一种方法将本地数据与 ajax 加载的数据合并到一个商店中。我很难用英语解释这一点,我希望这段代码会更明确:
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
fields: ['id', 'name'],
proxy: { type: 'ajax', api: { read: '/read' } },
data: [{ id: 1, name: 'John' }]
});
“/read”返回的 Json:[{ id: 2, name: 'Jack' }]
。
期望的行为:store.count()//2
最佳答案
您可以使用 .load({addRecords: true}
将加载的记录添加到现有记录。
当然,如果您在启用 addRecords: true
选项的情况下再次加载,它会再次将记录添加到现有记录中,从而导致:
[{ id: 1, name: 'John' },{ id: 2, name: 'Jack' },{ id: 2, name: 'Jack' }]
如果您只需要 [{ id: 1, name: 'John' },{ id: 2, name: 'Jack,您可以实现一个加载前处理程序来将存储重置为原始数据并再次加载' }]
每次重新加载时。
关于ExtJS 4.1 : How to combine local data with ajax loaded data in a single store?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12408952/