एंबर-data.js: https://github.com/emberjs/data/tree/0396411e39df96c8506de3182c81414c1d0eb981Ember.js डेटा RESTAdapter का उपयोग करते समय त्रुटियों को कैसे संभाला जाना चाहिए?
संक्षेप में, जब वहाँ एक त्रुटि है, मैं ध्यान में रखते हुए त्रुटि संदेश प्रदर्शित करना चाहते हैं, और उसके बाद उपयोगकर्ता कर सकते हैं 1) रद्द, जो लेन-देन 2 रोलबैक होगा) को ठीक करें इनपुट त्रुटियों और सर्वर पर मान्यताओं को पारित, सफलतापूर्वक लेनदेन प्रतिबद्ध।
नीचे स्रोत से एक कोड स्निपेट है। इसमें त्रुटि कॉलबैक शामिल नहीं है।
updateRecord: function(store, type, record) {
var id = get(record, 'id');
var root = this.rootForType(type);
var data = {};
data[root] = this.toJSON(record);
this.ajax(this.buildURL(root, id), "PUT", {
data: data,
context: this,
success: function(json) {
this.didUpdateRecord(store, type, record, json);
}
});
},
कुल मिलाकर, सर्वर से त्रुटि प्राप्त करने और दृश्य को अपडेट करने का प्रवाह क्या है? ऐसा लगता है कि एक त्रुटि कॉलबैक को मॉडल को isError
स्थिति में रखना चाहिए, और फिर दृश्य उचित संदेश प्रदर्शित कर सकता है। इसके अलावा, लेनदेन गंदे रहना चाहिए। इस तरह, लेनदेन rollback
का उपयोग कर सकते हैं।
ऐसा लगता है कि store.recordWasInvalid
का उपयोग सही दिशा में जा रहा है।
त्रुटियों को संभालने के लिए अभी तक एक पूर्ण तंत्र नहीं है, https://github.com/emberjs/data/pull/376/ देखें, शायद आपको वह चाहिए जो आप चाहते हैं। –
हां, त्रुटि प्रबंधन की कमी आश्चर्यजनक है, लेकिन यह अच्छा है कि निष्पक्ष कार्यान्वयन के विपरीत कोई त्रुटि प्रबंधन नहीं है जो बाद में बदल जाएगा। मैंने 'App.store.commit()' करने से पहले क्लाइंट-साइड पर कुछ मान्यताओं को निष्पादित करके सर्वर त्रुटियों से बचने के लिए अपना हालिया एम्बर ऐप लिखा है। – Mars