Ember-data.js 500状态代码

时间:2014-01-21 22:31:59

标签: ember.js ember-data

在创建新模型时,有没有办法处理500状态错误,例如

var model = this.store.createRecord('user');
model.save().then(function() {

}, function(error) {
// this callback will not be executed if 500 status response
});

但是,我可以在模型上使用becameError事件来捕获它,但在这种情况下,错误对象将不可用。

感谢您的回答。

3 个答案:

答案 0 :(得分:0)

看起来500使其回到拒绝路线

http://emberjs.jsbin.com/OxIDiVU/159/edit

答案 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
});