当我调用
时 App.store.createRecord(App.User, { name: this.get("name") });
App.store.commit();
我怎么知道它是否成功以及如何等待asyn消息?
答案 0 :(得分:9)
非常有限的错误处理是recently added到ember-data master中的DS.RESTAdapter。
创建或更新记录(禁用批量提交)并返回400到599之间的状态代码时,将发生以下情况:
422 Unprocessable Entity
会将记录转换为“无效”状态,并将从服务器返回的任何错误添加到记录的errors
属性中。
适配器假定服务器将使用以下格式的JSON进行响应:
{
errors: {
name: ["can't be blank"],
password: ["must be at least 8 characters", "must contain a number"]
{
}
(错误消息本身可能是字符串数组或只是字符串。目前,ember-data不关心哪个。)
要检测此状态:
record.get('isValid') === false
所有其他状态代码都会将记录转换为“错误”状态。
要检测此状态,请使用:
record.get('isError') === true
更多案例最终可能会由ember-data开箱即用,但目前如果你需要特定的东西,你必须扩展DS.RESTAdapter
,自定义其didError
函数来添加它在你自己。