json - एकाधिक रूट तत्वों के साथ जेसन स्टोर को लोड कैसे करें?



extjs jsonstore (1)

यदि आप 4.x का उपयोग कर रहे हैं, तो रूट पैरामीटर एक फ़ंक्शन हो सकता है:

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

मेरी एक परियोजना में मुझे जेएसएनओ स्टोर को जेएसओएन सर्वर प्रतिक्रिया के साथ लोड करने की आवश्यकता है I JSON प्रतिक्रिया में मुझे 2-3 रूट तत्व प्राप्त हो रहे हैं। लेकिन स्टोर कॉन्फ़िगरेशन में मैं केवल 1 रूट तत्व प्रदान कर सकता हूं।

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

मेरी दुकान विन्यास नीचे की तरह है

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

अगर मैं 1 रूट तत्व (पूर्व स्तर 3 लिस्ट के लिए) देता हूं तो वह संबंधित वस्तुओं को ठीक से लोड कर रहा है। लेकिन मुझे कई रूट तत्वों से डेटा लोड करने का समाधान चाहिए। कृपया स्टोर में डेटा लोड करने में मेरी सहायता करें।





jsonstore