2010-05-17 12 views
6

Sto provando a caricare un archivio JSON usando un MemoryProxy (ho bisogno di usare un proxy perché utilizzo fonti diverse a seconda dello scenario). Sembra un po 'come questo:Come caricare i dati nell'archivio usando un MemoryProxy

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

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

Tuttavia quando ho ispezionare questo posso vedere che il proxy ha 10 righe di dati, ma non il negozio. Sono perso sul perché.

Eventuali suggerimenti?

+0

Quale versione ExtJS è stato questo? – Meredith

risposta

5

così mi mancava l'Arrayreader ho modificato l'esempio arrray che viene fornito con ExtJS sostituendo l'arrayStore con il seguente

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

Stavo pensando di mettere questo copia di lavoro da qualche parte in github, come ho potuto trovare nulla con un proxy memoria di lavoro

+0

Una copia Github funzionante sarebbe interessante – Meredith

0

In tutti l'esempio hanno perso di mettere

autoLoad: true, 
4

Questa è la mia semplice Store. Tutto in un unico e pronto per caricare l'oggetto-array subito ;-)

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

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

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

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

Dopo aver creato il negozio, il vostro grado di caricare JSON tramite loadData

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

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