我正在寻找一种方法将本地数据与ajax加载的数据组合在一个商店中。我很难用英语解释这个,我希望这段代码更明确:
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
fields: ['id', 'name'],
proxy: { type: 'ajax', api: { read: '/read' } },
data: [{ id: 1, name: 'John' }]
});
> Json由“/ read”返回:[{ id: 2, name: 'Jack' }]
。
所需行为:store.count() // 2
答案 0 :(得分:3)
您可以使用.load({addRecords: true}
将已加载的记录添加到现有记录中。
当然,如果您启用addRecords: true
选项再次加载 ,它会再次将记录添加到现有记录中,从而导致:
[{ id: 1, name: 'John' },{ id: 2, name: 'Jack' },{ id: 2, name: 'Jack' }]
您可以实现一个before load处理程序,将商店重置为原始数据,如果每次重新加载时只需[{ id: 1, name: 'John' },{ id: 2, name: 'Jack' }]
,则可以再次加载。