8

我正在尝试实现一些我猜有一个简单答案的东西,但不知何故我在阅读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)我必须在最后手动删除那个观察者——如果在两者之间引发一些异常,这很容易出错例如,不会被删除。

有任何想法吗?你会怎么做?

4

1 回答 1

6

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

MyApp.User = DS.Model.extend({
  first: DS.attr('string'),
  page: DS.attr('string'),
  didUpdate: function() {
    //Do something
  },
  didCreate: function() {
    //do something
  }
});
于 2012-05-14T19:08:20.427 回答