在创建新模型时,有没有办法处理500状态错误,例如
var model = this.store.createRecord('user');
model.save().then(function() {
}, function(error) {
// this callback will not be executed if 500 status response
});
但是,我可以在模型上使用becameError
事件来捕获它,但在这种情况下,错误对象将不可用。
感谢您的回答。
答案 0 :(得分:0)
看起来500使其回到拒绝路线
答案 1 :(得分:0)
您可以覆盖DS.Model保存并将错误哈希中的值分配给模型
App.Model = DS.Model.extend({
save: function() {
var _this = this;
return this._super().then(function(obj) {
return new Ember.RSVP.Promise(function(resolve) {
return resolve(obj);
});
}, function(error) {
//Do something with error here
_this.set('error_status', error.status)
return new Ember.RSVP.Promise(function(resolve, reject) {
return reject(error);
});
});
}
});
请注意。在save方法中在error函数之前调用的becomeError事件,因此当调用becomeError时,不会设置'error_status'。
答案 2 :(得分:0)
var model = this.store.createRecord('user');
model.save().catch(function(error) {
error.status; // status code
});