我正在从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有人可以提供帮助 马克
答案 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)
不确定这是否有助于您替换bacameInvalid
和becameError
,因为现在正在删除状态,但您可以尝试将其作为一种简单的解决方法:
Ember.RSVP.configure('onerror', function(error) {
console.log(error.message);
console.log(error.stack);
});
希望它有所帮助。