2010-05-17 3 views
6

J'essaye de charger un magasin JSON en utilisant un MemoryProxy (j'ai besoin d'utiliser un proxy car j'utilise différentes sources selon le scénario). Il ressemble un peu à ceci:Comment charger les données en mémoire en utilisant un MemoryProxy

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

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

Cependant, lorsque je visite ce que je peux voir que le proxy dispose de 10 lignes de données, mais pas le magasin. Je suis perdu quant à pourquoi.

Des pointeurs?

+0

Quelle version ExtJS était-ce? – Meredith

Répondre

5

donc je manque le Arrayreader j'ai modifié l'exemple arrray qui vient avec ExtJS remplaçant le arrayStore avec les éléments suivants

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

Je pensais à mettre cette copie de travail quelque part dans github, comme je ne pouvais pas trouver quoi que ce soit avec un proxy de la mémoire de travail

+0

Une copie de travail Github serait cool – Meredith

0

en tout l'exemple qu'ils ont manqué de mettre

autoLoad: true, 
4

Ceci est mon magasin simple. Tout en un et prêt à charger votre-tableau d'objets tout de suite ;-)

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

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

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

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

Après avoir créé le magasin, votre peut charger JSON via loadData

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

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