संयोग से, "नया" BasicAdapter अभी जारी किया गया था। मेरे लिए सवाल यह था कि क्या इससे 404 त्रुटियों को संभालने में चीजें आसान हो जाएंगी।
कार्य # 1
मेरा पहला दृष्टिकोण - क्या क्रिस्टोफर सुझाव दे रहा था इसी तरह - HTTP स्थिति युक्त एक अतिरिक्त क्षेत्र को जोड़ने के लिए किया गया था।
$.getJSON(url, data).then(null, function(xhr) {
return {
id: id,
statusCode: xhr.status
};
}).always(function(data) {
return process(data).load();
});
क्या करता है एक हैश का अनुरोध आईडी और स्थिति कोड युक्त करने के लिए त्रुटि प्रतिक्रिया (XHR) को बदलने के लिए है:
status: DS.attr("number");
और फिर मैं इस AJAX कॉल का इस्तेमाल किया। अंत में, सफल परिणाम या असफल हैश स्टोर में पास हो जाते हैं।
इस तरह के काम, लेकिन यह बहुत व्यावहारिक नहीं है: जब आप सभी मॉडल उदाहरणों की एक सूची दिखाते हैं तो उन "नकली" उदाहरणों को मैन्युअल रूप से फ़िल्टर करना होगा।
कार्य # 2
एक और विचार एक विशेष त्रुटि मॉडल बनाने के लिए किया गया था।
App.Error = App.Model.extend({
status: DS.attr("number")
});
और अनुसार क्वेरी:
$.getJSON(url, data).then(null, function(xhr) {
return App.store.load(App.Error, {}, {
id: 0,
status: xhr.status
});
}).done(function(data) {
return process(data).load();
});
यह लोड और त्रुटि मॉडल का एक नया उदाहरण बना सकते हैं और यह दुकान में डाल देंगे।
इस समस्या के साथ यह है कि एम्बर वास्तव में इसे "स्वीकार नहीं कर रहा था"। एप्लिकेशन ने अभी कुछ भी नहीं कर रहा है, अब कुछ भी नहीं कर रहा है। तो यह बंद रास्ते की तरह के रूप में अच्छी लगती है :(
यह बेकार है। मेरा मतलब है कि मुझे पता था कि एम्बर-डेटा बढ़ रहा था लेकिन यह पागल है। लेकिन आपके उत्तर के लिए धन्यवाद! – stephanos
क्या आपको लगता है [बेसिक एडाप्टर की घोषणा] (http://emberjs.com/blog/2013/03/22/stabilizing-ember-data.html) यह आसान हो सकता है? – stephanos
यह [मुद्दा] देखें (https://github.com/emberjs/data/issues/296) – pjlammertyn