什么是放弃对记录所做更改的推荐方法?
我有以下逻辑将脏记录恢复到原始状态。
if controller.get('isDirty')
controller.get('content').rollback()
除非尝试提交记录失败,否则
如果我尝试提交更改并且服务器响应错误,则不再可能以这种方式回滚记录。在这种情况下,Ember Data或RESTAdapter是否提供了将记录恢复到其原始状态的内置方法?
我正在使用打包的DS.RESTAdapter
和Ember Data修订版11
答案 0 :(得分:2)
虽然我不知道为什么,但我发现了一些显然有用的东西。以下是我在模型中所做的事情:
App.User = DS.Model.extend({
becameInvalid: function(errors) {
this.get('transaction').rollback();
//this.rollback(); <- This doesn't work. You get becameClean error.
}
});
答案 1 :(得分:1)
通过路由器中的事务创建/更新您的记录。有关如何执行此操作的详情,请参阅here。
var transaction = App.store.transaction()
transaction.createRecord(App.Foo);
transaction.commit()
transaction.rollback()