Ember Data 1.0.0:如何检索验证错误(422响应)

时间:2013-09-01 21:09:01

标签: ember.js ember-data

我正在从Ember数据0.13转换为1.0.0 Beta 1.在0.13中,我使用了becomeError和becomeInvalid状态来了解保存记录时是否存在问题。

在1.0.0中,不再有事务,您需要使用保存承诺来处理错误。见下文:

 save: function() {
    this.get('model').save().then(function () {
        alert("Record saved");
      }, function () {
        alert("Problem");
      });
    }, 

在上面,我想区分验证错误和所有其他错误(就像之前在0.13中使用becomeError和becomeInvalid一样)。

有没有办法访问错误对象以及如何读取json响应中包含的验证错误?在此之前是通过this.get('content.errors')...

Hoep有人可以提供帮助 马克

2 个答案:

答案 0 :(得分:2)

三个步骤:

以适当的格式返回错误。如果它是Rails应用程序,那么:

\# Rails controller, update function

format.json { render json: {errors: @post.errors.messages}, status: :unprocessable_entity }

在承诺中设置错误

// app.js
save: function() {
  self = this;
  this.get('model').save().then(function () {
    alert("Record saved");
  }, function (response) {
    self.set('errors', response.responseJSON.errors);
  });
}

在车把模板中显示错误

<\!-- index.html -->
{{input type="text" value=title}}<span class="alert-error">{{errors.title}}</span>

答案 1 :(得分:0)

不确定这是否有助于您替换bacameInvalidbecameError,因为现在正在删除状态,但您可以尝试将其作为一种简单的解决方法:

Ember.RSVP.configure('onerror', function(error) {
  console.log(error.message);
  console.log(error.stack);
});

希望它有所帮助。