ExtJS 4.1 : How to combine local data with ajax loaded data in a single store?

标签 extjs extjs4 store extjs4.1

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

相关文章:

javascript - ExtJS如何在网格面板中构建链接组合框

extjs - 如何在extjs中显示时间和日期

javascript - 使用 EXTJS、JAVASCRIPT 在新选项卡(FireFox 和 IE 8)中打开 pdf

extjs - 如何在 ExtJS 事件处理程序中访问类变量?

javascript - 如何从Json输出中获取特定信息

java -\n 不起作用,不会换行

javascript - 创建 ExtJS 弹出表单?

javascript - HTMLEditor 将光标聚焦在文本区域内

javascript - Extjs store.proxy.extraParams 仅在 Internet Explorer 中未定义

extjs - 从 store 监听器获取 ViewModel