在我完成的任务列表中,我使用Moment.js的fromNow()
列出了每个任务的相对完成日期。这是任务模型:
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());
};
相对日期显示,但分钟永远不会更新,除非我刷新。有没有办法更新那个observable?
答案 0 :(得分:8)
你可以有一个跟踪当前时间的observable,然后根据那个时间计算完成的文本:
var now = ko.observable(new Date());
setInterval(function() { now(new Date()); }, 60 * 1000);
var completedText = ko.computed(function()
moment(data.date_completed).from(now()));
});