我正在尝试使用MemoryProxy加载JSON存储(我需要使用代理,因为我根据场景使用不同的源)。它看起来像这样:
var data = Ext.decode(gridArrayData);
var proxy = new Ext.data.MemoryProxy(data);
var store = new Ext.data.GroupingStore({
proxy: proxy
});
store.load();
然而,当我检查这个时,我可以看到代理有10行数据,但不是商店。我迷失了为什么。
任何指针?
答案 0 :(得分:5)
所以我错过了Arrayreader 我修改了extjs附带的arrray示例,用以下
替换了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的某个地方,因为我找不到任何内存代理工作
答案 1 :(得分:4)
这是我的简单商店。一体化,准备立即加载您的对象阵列; - )
Ext.define('MemoryStore', {
extend: 'Ext.data.Store',
requires: [
'Ext.data.proxy.Memory'
],
fields: [{name: 'company'}],
proxy: {
type: 'memory'
}
});
创建商店后,您可以通过loadData
加载jsonvar store = Ext.create("MemoryStore");
store.loadData([
{company:"Skynet"},
{company:"Rocket-Solutions"},
]);
console.debug(store.first().get("name"));
答案 2 :(得分:0)
在他们错过的所有例子中
autoLoad: true,