自动在记录上设置updatedAt时间

时间:2014-09-18 07:52:42

标签: ember.js

如果该记录的任何属性值发生变化,如何将记录上的updatedAt字段的值设置为当前时间?

我看到DS.Model有一个didUpdate事件(http://emberjs.com/api/data/classes/DS.Model.html#event_didUpdate) - 也许我应该在此添加一个观察者(但是在我收听事件的文档中没有例子可以找到)。或者模型上的某种计算属性可能会起作用吗?

1 个答案:

答案 0 :(得分:1)

您可以像这样观察didUpdate事件:

// in controller with model, that extends Ember.Model class
this.get('model').on('didUpdate', functuion() {
    // set time value to updatedAt property
});

在不再需要时,不要忘记删除观察者。

P.S。我非常确定这种模型的属性(createdAt,updatedAt等)必须具有客户端的只读状态。在这种情况下,必须在服务器端将updatedAt属性设置为正确值,然后返回到客户端(使用其他属性,如ember期望)。

P.P.S。如果你需要将这个观察者封装在模型的代码中,你可以这样做:

  init: function() {
      this._super.apply(this, arguments);

      this.on('didUpdate', function() {
          // logic
      });
  }