2011-04-26 26 views
15

में स्टोर से नेस्टेड मॉडल तक कैसे पहुंचे I मैंने अभी एक्स्टजेस 4 का अंतिम संस्करण डाउनलोड किया है और मैं नए मॉडल दृष्टिकोण का उपयोग करके कुछ चीजों को लागू करने की कोशिश कर रहा हूं।ExtJs 4

उदाहरण के लिए मेरे पास SetupModel नामक एक मॉडल है, इसमें 2 नेस्टेड मॉडल उपयोगकर्ता, रिपोर्ट हैं। मैं नया स्टोर बनाता हूं और मैंने स्टोर = मॉडल मॉडल की मॉडल प्रॉपर्टी सेट की है।

सवाल यह है कि - स्टोर में डेटा लोड होने के बाद मैं अपने नेस्टेड गुणों को कैसे एक्सेस कर सकता हूं?

मुझे myStore.data.Users() जैसी कुछ चाहिए, लेकिन गलत है।

कोई विचार?

उत्तर

22

जब आप अपना मॉडल परिभाषित करते हैं, तो आपको नेस्टेड मॉडल के साथ आवश्यक सहयोग प्रदान करने की आवश्यकता होती है। चूंकि, आपने अपना कोड प्रदान नहीं किया है। यदि आप उत्पादों के साथ उपयोगकर्ता मॉडल का एक उदाहरण है,

User = Ext.define('User',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'id',  type: 'int'}, 
     {name: 'name',  type: 'string'}, 
     {name: 'gender', type: 'string'}, 
     {name: 'username', type: 'string'} 
    ], 
    associations: [ 
     {type: 'hasMany', model: 'Product', name: 'products'} 
    ], 
    proxy: { 
     type: 'localstorage', 
     id : 'users' 
    } 
}); 

अब:

मेरे उत्पाद मॉडल::

Product = Ext.define('Product',{ 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'id', type: 'int'}, 
     {name: 'user_id', type: 'int'}, 
     {name: 'name', type: 'string'}, 
     {name: 'price', type: 'float'} 
    ], 
    proxy: { 
     type: 'localstorage', 
     id: 'products' 
    } 
}); 

मेरे उपयोगकर्ता मॉडल यहाँ एक उदाहरण है।

var productStore = user.products(); 

ध्यान दें कि user.products() रिटर्न एक Ext.data.Store: आप निम्न तरीके से उत्पादों का उपयोग कर सकते है। अब, आप अपने उत्पाद रिकॉर्ड को ट्रैवर्स या फ़िल्टर या ढूंढ सकते हैं। यहां बताया गया है कि मुझे अपना पहला उत्पाद का नाम कैसे मिला:

productStore.getAt(0).get('name'); 
+0

प्रिय अब्देल, क्या होगा यदि हम सर्वर से दूसरे अनुरोध के बिना घोंसला वाले ग्रिडपेनल बनाना चाहते हैं, तो क्या यह विधि संभव है? –

+0

हाय ओगज़ Çelikdemir, सुनिश्चित नहीं है कि आपको इसकी आवश्यकता कैसे है, क्या आप समझा सकते हैं कि आप एक पंक्ति या कुछ विस्तार करना चाहते हैं? –

+0

@ ओगुर आप एक जेसन में नेस्टेड डेटा प्राप्त कर सकते हैं और अपने associoation के लिए कई definiton में "relatedKey" निर्दिष्ट कर सकते हैं। –

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