2010-05-17 15 views
6

Estoy intentando cargar un almacén JSON utilizando un MemoryProxy (necesito usar un proxy porque utilizo fuentes diferentes según el escenario). Es poco se parece a esto:Cómo cargar datos en la tienda utilizando un MemoryProxy

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

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

Sin embargo, cuando examino esto puedo ver que el proxy tiene 10 filas de datos, pero no el de la tienda. Estoy perdido en cuanto a por qué.

¿Alguna sugerencia?

+0

¿Qué versión ExtJS era esta? – Meredith

Respuesta

5

así que le faltaba la Arrayreader he modificado el ejemplo arrray que viene con extjs sustitución de la arrayStore con la siguiente

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 
}); 

Estaba pensando en poner esta copia de trabajo en algún lugar de GitHub, ya que no pude encontrar nada con un proxy memoria de trabajo

+0

Una copia de trabajo de Github sería genial – Meredith

0

En todo el ejemplo que se perdieron para poner

autoLoad: true, 
4

Ésta es mi sencilla tienda. Todo en uno y listo para cargar el objeto de matriz de inmediato ;-)

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

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

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

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

Después de crear la tienda, su puede cargar a través de JSON loadData

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

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