विन्यासबैकएंड मान्यता हमेशा "अनुकूलक को अस्वीकार कर दिया प्रतिबद्ध है क्योंकि यह अवैध था"
- बैकएंड = Laravel 5.1, डिंगो एपीआई
- दृश्यपटल = एंबर 1.13.6, एंबर डाटा 1.13 के साथ। 7
- एडाप्टर = एंबर डाटा RESTAdapter
समस्या
मैं अपने पहले एम्बर एप्लिकेशन पर बैकएंड सत्यापन त्रुटियों को संभालने की कोशिश कर रहा हूं।
Error: The adapter rejected the commit because it was invalid
at new Error (native)
at Error.EmberError (http://localhost:4200/assets/vendor.js:26266:21)
at Error.ember$data$lib$adapters$errors$$AdapterError (http://localhost:4200/assets/vendor.js:69564:50)
at Error.ember$data$lib$adapters$errors$$InvalidError (http://localhost:4200/assets/vendor.js:69637:52)
at ajaxError (http://localhost:4200/assets/frontend.js:16:24)
at ember$data$lib$system$adapter$$default.extend.ajax.Ember.RSVP.Promise.hash.error (http://localhost:4200/assets/vendor.js:71327:31)
at jQuery.Callbacks.fire (http://localhost:4200/assets/vendor.js:3350:30)
at Object.jQuery.Callbacks.self.fireWith [as rejectWith] (http://localhost:4200/assets/vendor.js:3462:7)
at done (http://localhost:4200/assets/vendor.js:9518:14)
at XMLHttpRequest.jQuery.ajaxTransport.options.send.callback (http://localhost:4200/assets/vendor.js:9920:8)
बैकएंड से प्रतिक्रिया एक 422 संसाधन अयोग्य इकाई हैडर है, और सामग्री है: त्रुटियों सर्वर से कर रहे हैं, मैं इस त्रुटि मिलती है
{
"message":"Couldn't save client",
"errors":{
"name":["The name field is required."],
"email":["The email field is required."]
},
"status_code":422
}
की कोशिश की (और असफल) समाधान
Ember data Rest adapter error handling not working
RESTAdapter ओ करने के लिए विस्तार ajaxError समारोह verride, मेरा वर्तमान में इस तरह दिखता है:ajaxError: function(jqXHR) { var error = this._super(jqXHR); if (jqXHR && jqXHR.status === 422) { var jsonErrors = Ember.$.parseJSON(jqXHR.responseText).errors; return new DS.InvalidError(jsonErrors); } else { return error; } }
बचाने विधि के लिए कैच बयान जोड़ा जा रहा है, मेरे को बचाने कार्रवाई वर्तमान में है:
save() { var self = this; function transitionToPost(post) { self.transitionToRoute('clients.show', post); } function failure(reason) { // handle the error console.log(reason); return false; } this.get('model').save().then(transitionToPost, failure).catch(failure); }
ActiveModelAdapter बाहर परीक्षण - यकीन नहीं क्या मैं इस के साथ सहभागिता करने की उम्मीद कर रहा था, लेकिन मैं बेताब हो गया; नतीजा अभी भी वही था।
एंबर डॉक्स (http://guides.emberjs.com/v1.13.0/models/creating-updating-and-deleting-records/#toc_promises)
आप ऊपर मेरी नियंत्रक कोड में देख सकते हैं, मैं वास्तव में एक आधार
कृपया के रूप में इस्तेमाल आप एक नजर है और सलाह दे सकते हैं? किसी भी सहायता के लिए अग्रिम रूप से धन्यवाद!
ठीक है, तो मैं एंबर डेटा अनइंस्टॉल और यह पुनर्स्थापित और फिर सब कुछ ठीक से काम शुरू कर दिया! – AshleyVee