3

我正在寻找一种将本地数据与 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

4

1 回答 1

3

您可以使用.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' }]每次再次加载时再次加载。

于 2012-09-13T14:55:55.663 回答