2013-08-31 53 views
3

在完成的任務列表中,我使用Moment.js的fromNow()列出了每個任務的相對完成日期。這裏的任務模型:Knockout + Moment.js - 更新可觀察對象內的相對日期

Task.Model = function(data) { 
    this.id = data.id; 
    this.title = ko.observable(data.title); 
    this.status = ko.observable(data.status); 
    this.completed = ko.observable(moment(data.date_completed).fromNow()); 
}; 

相對日期顯示,但從未更新,除非我刷新,除非更新。有什麼方法可以更新可觀察值?

+0

你是什麼意思的「不升級,除非我刷新」?誰和爲什麼要更新它?你如何用F5「刷新」瀏覽器? – nemesv

回答

8

你可以有一個觀察的跟蹤當前的時間,然後計算基於當時的完成文字:

var now = ko.observable(new Date()); 
setInterval(function() { now(new Date()); }, 60 * 1000); 

var completedText = ko.computed(function() 
    moment(data.date_completed).from(now())); 
}); 
相關問題