2010-05-17 12 views
6

Próbuję załadować magazyn JSON przy użyciu MemoryProxy (muszę użyć proxy, ponieważ używam różnych źródeł w zależności od scenariusza). Wygląda to tak:Jak załadować dane do sklepu za pomocą MemoryProxy

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

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

Jednak kiedy to sprawdzam, widzę, że serwer proxy ma 10 wierszy danych, ale nie magazyn. Nie wiem, dlaczego.

Jakieś wskazówki?

+0

jaka wersja ExtJS to było? – Meredith

Odpowiedz

5

więc brakowało Arrayreader zmodyfikowałem arrray przykład, że pochodzi z ExtJS zastępując arrayStore z następującymi

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

Myślałem o oddanie tej kopii roboczej gdzieś w github, jak nie mogłem znaleźć niczego z prokurentem pamięci roboczej

+0

Działająca kopia Githuba byłaby fajna – Meredith

0

We wszystkich przykładzie przegapili umieścić

autoLoad: true, 
4

to jest mój prosty sklep. Wszystko w jednym i gotowy, aby załadować swój obiekt-tablicy od razu ;-)

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

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

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

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

Po utworzeniu sklepu, może ładunek json poprzez loadData

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

console.debug(store.first().get("name")); 
Powiązane problemy