2013-08-31 54 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())); 
}); 
相关问题