Ember计算属性,观察当前时间

时间:2013-12-21 08:07:56

标签: javascript time ember.js

有没有办法让计算属性观察当前时间(用于时间戳)?

例如,在我的控制器中,我可能有一个看起来像这样的方法:

formatLastUpdated:function() {
    return moment(this.get("model.update_ts")).fromNow();
}.property("model.update_ts", "date.now?"),

2 个答案:

答案 0 :(得分:8)

ember-time存储库包含了您尝试执行的操作的一个很好的示例。

他们通过把手助手使用自定义视图。该视图设置tick函数,该函数每秒通过Ember.run.later调用:

didInsertElement: function() {
  this.tick();
},
tick: function() {
  var nextTick = Ember.run.later(this, function() {
    this.notifyPropertyChange('value');
    this.tick();
  }, 1000);
  this.set('nextTick', nextTick);
},
willDestroyElement: function() {
  var nextTick = this.get('nextTick');
  Ember.run.cancel(nextTick);
}

notifyPropertyChange调用告诉视图属性已更改,因此触发重新渲染...

答案 1 :(得分:1)

完全同意斯科特。话虽这么说,你可以创建一个全局属性,你每分钟更新一次最新的时间,这样你就可以处理一部分时间。

我会将它存储在应用程序控制器上,然后使用其他控制器的需求。这是一个例子。

http://emberjs.jsbin.com/Elibefem/1/edit