有没有办法让计算属性观察当前时间(用于时间戳)?
例如,在我的控制器中,我可能有一个看起来像这样的方法:
formatLastUpdated:function() {
return moment(this.get("model.update_ts")).fromNow();
}.property("model.update_ts", "date.now?"),
答案 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)
完全同意斯科特。话虽这么说,你可以创建一个全局属性,你每分钟更新一次最新的时间,这样你就可以处理一部分时间。
我会将它存储在应用程序控制器上,然后使用其他控制器的需求。这是一个例子。