【发布时间】:2012-10-09 17:57:16
【问题描述】:
ember-data.js:https://github.com/emberjs/data/tree/0396411e39df96c8506de3182c81414c1d0eb981
简而言之,当出现错误时,我想在视图中显示错误信息,然后用户可以 1)取消,这将回滚事务 2)更正输入错误并成功提交事务,通过服务器上的验证。
下面是来自源代码的代码 sn-p。它不包含错误回调。
updateRecord: function(store, type, record) {
var id = get(record, 'id');
var root = this.rootForType(type);
var data = {};
data[root] = this.toJSON(record);
this.ajax(this.buildURL(root, id), "PUT", {
data: data,
context: this,
success: function(json) {
this.didUpdateRecord(store, type, record, json);
}
});
},
总的来说,从服务器接收错误并更新视图的流程是什么?似乎错误回调应该将模型置于isError 状态,然后视图可以显示适当的消息。此外,交易应该保持肮脏。这样,交易就可以使用rollback。
不过,使用store.recordWasInvalid 似乎是朝着正确的方向发展。
【问题讨论】:
-
目前还没有完善的错误处理机制,请看github.com/emberjs/data/pull/376,或许你会找到你想要的。
-
是的,缺少错误处理令人惊讶,但是没有错误处理,而不是稍后会更改的幼稚实现,这很好。我已经编写了我最近的 Ember 应用程序,通过在客户端执行一些验证来避免服务器错误,然后再执行
App.store.commit()。
标签: ember.js ember-data