Как загрузить данные в хранилище с помощью MemoryProxy - PullRequest
6 голосов
/ 17 мая 2010

Я пытаюсь загрузить JSON-хранилище, используя MemoryProxy (мне нужно использовать прокси, потому что я использую разные источники в зависимости от сценария). Это выглядит примерно так:

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

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

Однако, когда я проверяю это, я вижу, что прокси имеет 10 строк данных, но не хранилище. Я заблудился относительно того, почему.

Есть указатели?

Ответы [ 3 ]

5 голосов
/ 18 мая 2010

так что мне не хватало Arrayreader Я изменил пример массива, который идет с extjs, заменив 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, так как я ничего не мог найти с работающим прокси памяти

4 голосов
/ 20 марта 2014

Это мой простой магазин. Все в одном и готово для загрузки вашего массива объектов сразу; -)

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

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

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

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

После создания магазина вы можете загрузить json через loadData

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

 console.debug(store.first().get("name"));
0 голосов
/ 22 ноября 2010

Во всем примере они пропустили поставить

autoLoad: true,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...