Ember数据和脏记录

时间:2013-02-02 23:14:41

标签: ember.js ember-data

什么是放弃对记录所做更改的推荐方法?

我有以下逻辑将脏记录恢复到原始状态。

if controller.get('isDirty')
  controller.get('content').rollback()

除非尝试提交记录失败,否则

如果我尝试提交更改并且服务器响应错误,则不再可能以这种方式回滚记录。在这种情况下,Ember Data或RESTAdapter是否提供了将记录恢复到其原始状态的内置方法?


我正在使用打包的DS.RESTAdapter和Ember Data修订版11

2 个答案:

答案 0 :(得分:2)

虽然我不知道为什么,但我发现了一些显然有用的东西。以下是我在模型中所做的事情:

App.User = DS.Model.extend({

  becameInvalid: function(errors) {
    this.get('transaction').rollback();
    //this.rollback(); <- This doesn't work. You get becameClean error.
  }
});

sly7-7issue的评论给了我这个想法。

答案 1 :(得分:1)

通过路由器中的事务创建/更新您的记录。有关如何执行此操作的详情,请参阅here

var transaction = App.store.transaction()
transaction.createRecord(App.Foo);
transaction.commit()
transaction.rollback()