json extjs jsonstore

¿Cómo cargar json store con múltiples elementos raíz?



extjs jsonstore (1)

En uno de mis proyectos necesito cargar la tienda Json con una respuesta del servidor JSOn de la siguiente manera. En la respuesta de JSon obtengo 2-3 elementos de raíz. pero en la configuración de la tienda solo puedo proporcionar 1 elemento raíz.

{ {"level2List":[{id:''id1'', name:''sample''},....]}, {"level3List":[{id:''id1'', name:''sample''},....]}, {"level4List":[{id:''id1'', name:''sample''},....]} }

la configuración de mi tienda es como a continuación.

store = new Ext.data.JsonStore({ // store configs storeId: ''myStore'', proxy: { type: ''ajax'', url: ''xml/getKpiInputData.json'', reader: { type: ''json'', root: ''level3List'', idProperty: ''name'' } }, fields: [ {name: ''name''}, {name: ''id''}, ... ], remoteFilter: false, remoteSort: true, pageSize: 10, autoLoad: {start: 0, limit: 10} });

Si le doy el 1 elemento raíz (por ejemplo, level3List) está cargando los elementos respectivos correctamente. Pero necesito la solución para cargar datos de múltiples elementos raíz. Por favor, ayúdame a cargar los datos a la tienda.


Si está utilizando 4.x, el parámetro raíz puede ser una función:

Ext.define(''MyModel'', { extend: ''Ext.data.Model'', fields: [''name''] }); Ext.require(''*''); Ext.onReady(function(){ var store = new Ext.data.Store({ model: MyModel, proxy: { type: ''memory'', reader: { type: ''json'', root: function(o){ var out = []; return out.concat(o.root1, o.root2, o.root3); } } }, data: { root1: [{ name: ''Item 1'' }], root2: [{ name: ''Item 2'' }], root3: [{ name: ''Item 3'' }] } }); store.load(); console.log(store.getCount()); });