ここにこのコードがあります
self.timestamp = ko.observable(data.timestamp);
self.dateFromNow = ko.computed(function ()
{
return moment(self.timestamp()).fromNow();
}, self);
self.timestamp
単なるUNIXタイムスタンプです
self.dateFromNow
44 years ago
またはのように見えます1 minute ago
私の目標は、self.dateFromNow
設定された時間間隔ごとに再計算することです。
これらのプロパティは HTML<time>
要素にバインドされていますが、要素を調べて再計算するために JS/jQuery を使用して再計算を行いたくありません。より良い方法は、設定された時間間隔ごとに KnockoutJS の値を単純に再計算し、KO にマークアップを更新させることだと思います。
KnockoutJS でこれを行う方法はありますか?
更新:私がしたことは、ポスターの答えの代わりにこのようなものでした
setInterval(function() {
$.each(self.foo(), function(index, item) {
item.timestamp.notifySubscribers();
});
}, 60 * 1000); // 60 * 1000 milsec