如何使用MemoryProxy将数据加载到商店中

时间:2010-05-17 19:26:09

标签: extjs

我正在尝试使用MemoryProxy加载JSON存储(我需要使用代理,因为我根据场景使用不同的源)。它看起来像这样:

var data = Ext.decode(gridArrayData);
var proxy = new Ext.data.MemoryProxy(data);

var store = new Ext.data.GroupingStore({               
    proxy: proxy
});
store.load();

然而,当我检查这个时,我可以看到代理有10行数据,但不是商店。我迷失了为什么。

任何指针?

3 个答案:

答案 0 :(得分:5)

所以我错过了Arrayreader 我修改了extjs附带的arrray示例,用以下

替换了arrayStore
 var nameRecord = Ext.data.Record.create([                            
      {name: 'company'},
       {name: 'price', type: 'float'},
       {name: 'change', type: 'float'},
       {name: 'pctChange', type: 'float'},
       {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
]);

var arrayReader = new Ext.data.ArrayReader({}, nameRecord);          

 var memoryProxy  = new Ext.data.MemoryProxy(myData);              

 var storeDos = new Ext.data.Store({                                    
     reader : arrayReader,
     autoLoad: true,
     proxy  : memoryProxy
 });

我在考虑将这个工作副本放在github的某个地方,因为我找不到任何内存代理工作

答案 1 :(得分:4)

这是我的简单商店。一体化,准备立即加载您的对象阵列; - )

Ext.define('MemoryStore', {
    extend: 'Ext.data.Store',

    requires: [
        'Ext.data.proxy.Memory'
    ],

    fields: [{name: 'company'}], 

    proxy: {
        type: 'memory'
    }
});

创建商店后,您可以通过loadData

加载json
var store = Ext.create("MemoryStore");
store.loadData([
   {company:"Skynet"},
   {company:"Rocket-Solutions"},
 ]);

 console.debug(store.first().get("name"));

答案 2 :(得分:0)

在他们错过的所有例子中

autoLoad: true,