事务提交后设置回调

时间:2012-05-13 11:38:59

标签: ember.js ember-data

我正在努力实现一些我认为有简单答案的东西,但不知何故我找不到它阅读ember-data的源代码。

我希望在将一组特定修改提交到数据存储区后触发操作。这是我目前的代码:

var transaction = App.store.transaction();
user = App.get('currentUser');
transaction.add(user);
user.set('name', "Michael Jackson");
transaction.commit();
App.navigate('dashboard');

我的第一次尝试是在这个用户的isDirty属性上添加一个观察者,但是a)它似乎不是惯用的,更重要的是b)我必须在最后手动删除那个观察者 - 这很容易例如,如果某些异常在两者之间发生并且没有被删除,则会出现错误。

有什么想法吗?你会怎么做?

1 个答案:

答案 0 :(得分:6)

您可以在模型上使用didCreate和didUpdate。我假设你有一个用户模型,如:

MyApp.User = DS.Model.extend({
  first: DS.attr('string'),
  page: DS.attr('string'),
  didUpdate: function() {
    //Do something
  },
  didCreate: function() {
    //do something
  }
});