2011-11-15 38 views
8

में बहुत अधिक डेटा मैं ExtjS4 में hasMany संबंध में 'नेस्टेड' डेटा लोड करने का प्रयास कर रहा हूं। मेरे मॉडल इस तरह दिखता है:लोड हो रहा है ExtJS

Ext.define("Entrypage.model.Entrypage",{ 
    extend: "Ext.data.Model", 
    fields: ['id','title','urlkey','text','picture','keywords', 'searchterms','description','critriamodus'], 
    hasMany: {model: 'EntrypageCriterium',name:'brands'}, 
    proxy: { 
     type: 'ajax', 
     url: '/Admin/extjson/entrypages', 
     reader: {type:'json', root:'entrypages'} 
    } 
}); 

और EntrypageCriterium:

Ext.define("Entrypage.model.EntrypageCriterium",{ 
    extend: "Ext.data.Model", 
    fields: ['id','type','title'] 
}); 

मैं इतनी तरह मेरे डेटा लोड:

Entrypage.load("nikon-coolpix",{success:function(record,options,success){ 
console.log(record); 
}}); 

यह ठीक लोड करता है। Json इस रिटर्न:

{ 
    "success": true,   
"entrypages":[{ 
    "id":"1", 
    "urlkey":"nikon-coolpix", 
    "title":"Nikon Coolpix", 
    "text":"Some blahblah about Nikon", 
    "keywords":"nikon,coolpix,digitale,camera", 
    "description":"Nikon Coolpix camera's", 
    "picture":"Nikon Coolpix camera's", 
    "searchterms":"nikon coolpix", 
    "language":"nl", 
    "brands":[ 
     {"id":27038,"title":"Nikon","type":"brand"} 
    ] 
}] 
} 

लेकिन जब मैं record.brands() या ऐसा कुछ प्रयास करें। यह कहता है कि ऐसी कोई विधि मौजूद नहीं है। मुझे लगता है कि मॉडल में डेटा मैपिंग में कुछ गलत हो रहा है।

किसी भी मदद की बहुत सराहना की जाएगी!

उत्तर

17

अंत में समस्या दिखाई दी:

hasMany: {model: 'EntrypageCriterium',name:'brands', associationKey:'brands'} 

लोड हो रहा है नेस्टेड डेटा अनुभाग यहाँ देखें। किसी भी भविष्य में संदर्भ के लिए:

आप ExtJS के नए MVC संरचना में संकुल उपयोग कर रहे हैं, इसलिए की तरह अपने सहयोग से जुड़ा हुआ वर्ग के लिए पूरा पथ को परिभाषित:

hasMany: {model: 'Entrypage.model.EntrypageCriterium', name: 'brands', associationKey:'brands'} 
+0

धन्यवाद। मैंने खुद को एक ही स्थिति का पता लगाया है लेकिन यह करना मुश्किल था। –

+0

क्या मॉडल को पूरी तरह से योग्य बनाने में फिक्स किया गया था? या वास्तव में एसोसिएशन को जोड़ना ठीक था? – tommyO

3

आपको कई सहयोगी में एसोसिएशन की संपत्ति सेट करने की आवश्यकता है, इसलिए यह पता है कि कौन सी जेसन संपत्ति का उपयोग करना है।

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.reader.Reader

+0

क्षमा करें, काम नहीं किया। लेकिन क्या यह 'ब्रांड' विधि को काम नहीं करेगा, लेकिन एक खाली सूची लौटाएगा? –

+0

मैं आपके मॉडल पर नेमस्पेस भूल गया। आपकी विदेशीकी अब भी गलत होगी, लेकिन आपको इस मामले में इसका उपयोग करने की आवश्यकता नहीं है। –

संबंधित मुद्दे