1
目前我有一個非常簡單的Ember對象,它有兩個屬性:startedAt
和endedAt
。每隔一段時間重新計算Ember對象的屬性
基於這些屬性,我計算了屬性isLive
。與當前時間進行時間比較。
渲染手柄模板時,我通過添加類highlight
來突出顯示某些項目。
<li {{ bindAttr class="event.isLive:highlight" }}>...</li>
我想更新該模板每5秒左右的時間,所以我知道要重新計算isLive
需求。我將如何去解決這個問題?
App.Event = Ember.Object.extend({
endedAt: null,
startedAt: null,
isLive: function() {
if (!this.get('startedAt') || !this.get('endedAt')) {
return false;
}
var now = moment();
return (now.diff(moment(this.get('startedAt'))) >= 0 &&
now.diff(moment(this.get('endedAt'))) < 0);
}.property('startedAt', 'endedAt')
});
我也做了一個常規的灰燼查看{{view App.TimerView}}
類似的東西。
App.TimerView = Ember.View.extend({
tagName: 'time',
template: Ember.Handlebars.compile('{{ view.now }}'),
init: function() {
this._super();
this.set('now', moment().format('HH:mm:ss'));
},
now: null,
willInsertElement: function(evt) {
var self = this;
var intervalId = setInterval(
function() {
self.set('now', moment().format('HH:mm:ss'));
}, 1000);
this.set('interval', intervalId);
},
willDestroyElement: function(evt) {
clearInterval(this.get('interval'));
}
});
但我似乎無法應用相同的邏輯的常規對象。請有人指出我正確的方向。
我相信我需要在控制器根據these guides做到這一點。