को देखते हुए मॉडल:मैं store.com() से प्रतिक्रिया जेसन के साथ एक DS.Model कैसे अपडेट कर सकता हूं?
Blog.Post = DS.Model.extend({
title: DS.attr('string'),
tags: DS.hasMany('Blog.Tag', { embedded: true })
});
Blog.Tag = DS.Model.extend({
foo: DS.attr('string'),
bar: DS.attr('string')
});
और उदाहरण:
var myPost = Blog.Post.createRecord({ id: 45, title: 'Foo Bar' })
जब मैं कर myPost.store.commit()
(एंबर-डेटा के DS.RESTAdapter के माध्यम से) अपने सर्वर स्वचालित रूप से उत्पन्न टैग की एक सूची है कि लागू किया जाना चाहिए रिटर्न myPost
पर। उदाहरण प्रतिक्रिया json:
{
posts: [
{
id: 45,
title: 'Foo Bar',
tags: [
{ id: 1, foo: 'bar1' },
{ id: 2, foo: 'bar2' }
]
}
]
}
मैं उम्मीद थी कि myPost
के रूप में json द्वारा लौटाए गए दो टैग के साथ खत्म हो जाएगा, लेकिन मैं इसके बजाय यह त्रुटि प्राप्त:
Error: <DS.StateManager:ember448> could not respond to event invokeLifecycleCallbacks in state rootState.loaded.updated.uncommitted.
मैं गलत यहाँ क्या कर रहा हूँ ?
संपादित करें: आईआईसी प्रति @ माइकएस्की की टिप्पणी को शामिल करने के लिए स्पष्टीकरण जेसन। दिया गया उदाहरण मेरे वास्तविक मामले का सरलीकृत संस्करण है - वास्तविक मामले में टैग आईडी शामिल हैं।
सब आप पर 'मिरर' मॉडल के बीच संबंधों की जरूरत के
क्या आपने उन्हें एम्बेड करने के बजाए टैग को सीलोड करने का प्रयास किया था? –
कुछ अजीब: आपके टैग में आईडी नहीं है। गलत लगता है ... किसी भी Serializer सर्वर पर टैग मॉडल के लिए गायब है? –
@ माइकएस्की मैंने टैग को सीलोड करने की कोशिश नहीं की है - मैं इसे एक शॉट दूंगा और यह कैसे निकलता है पोस्ट करें। टैग आईडी को शामिल करने के लिए प्रश्न अपडेट किया गया; एक साधारण मामले में सवाल उबलते समय मैंने उन्हें बाहर छोड़ा। – ardell