2013-02-04 11 views
5

एम्बरजेएस ने पहले संशोधन में एक को हटा दिया है। इस तरह के नेस्टेड ऑब्जेक्ट रिलेशनशिप को बनाने का तरीका क्या है जहां मैं चाहता हूं किकैसे एम्बेडेड हमेशा संबंध के साथ एक संबंध है

हैसऑन को हटाने के लिए हैलो के पक्ष में किया गया है, क्या कोई नेस्टेड JSON के बीच {एम्बेडेड: हमेशा} संबंध लिखने के बारे में एक विचार साझा कर सकता है।

उत्तर

14

मुझे पता है कि इस सवाल का पुराना है और उत्तर दिया, लेकिन जब से यह "एंबर hasone" के लिए शीर्ष खोज परिणामों में से एक है मैं इस विषय पर मेरी जानकारी को साझा करना चाहता था। मैंने पहले जवाब में लिंक पढ़ा है लेकिन उदाहरण थोड़े पुराने हैं।

"एम्बेडेड" ध्वज अप्रचलित है, "DS.RESTAdapter.map" एक फ़ंक्शन नहीं है और "DS.hasOne" विधि बहिष्कृत है।

"हैस रिलेशनशिप" को अनुकरण करने के लिए वर्तमान 1.0.0-बीटा 2 समाधान बस "DS.belongsTo" का उपयोग कर रहा है। वे बहुत अलग नहीं हैं और आपको बस अपने परिणाम के लिए एक विदेशी विदेशी जोड़ना होगा-जैसे आप संबंधित हैं, बस सेट करें।

स्रोत:https://github.com/emberjs/data/commit/a466741a36731c5d382df33461268024627325ef

यहाँ एक जटिल मॉडल से एक उदाहरण सर्वर प्रतिक्रिया है।

{"users": [{ 
    "id": 1, 
    "name": "John Doe", 
    "profile": 27,  // merged hasone 
    "image": 3,   // merged hasone 
    "account_id": 64  // an actual belongsTo 
}]} 

और फिर मॉडल के रूप में

App.User = DS.Model.extend({ 
    name: DS.attr('string'), 
    profile: DS.belongsTo('profile'), 
    image: DS.belongsTo('image'), 
    account_id: DS.belongsTo('account') 
}); 

आशा इस मदद करता है किसी को भी कैसे एक hasOne मॉडल करने के लिए पर जानकारी के लिए देख

1

आपको एडाप्टर पर मानचित्रण सेट करना होगा, कृपया एक उदाहरण उदाहरण के लिए this answer देखें।

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