当我加载页面时,一切工作正常,但是:为什么momentjs不会更新时间?
如果我插入了新帖子,momentjs不会将几分钟前的文本更新为一分钟前。
这就是我在做什么。
我添加了momentjs:moment
包
注册助手
UI.registerHelper('timeAgo', function(datetime) {
return moment(datetime).fromNow();
});
在模板中
<template name="postItem">
<li>
{{text}} - {{timeAgo createdAt}}
</li>
{{/if}}
</template>
输出是
Hi! - a few seconds ago
Hello! - 23 minutes ago
最佳答案
日期不是反应性变量,因此时差更改时不会刷新。
您可以通过强制其每分钟(或自定义间隔)重新计算来使其具有反应性:
UI.registerHelper('timeAgo', function(datetime) {
Session.get('time');
return moment(datetime).fromNow();
});
setInterval(function() {
Session.set("time", new Date())
}, 60000); //Every minute
这将迫使助手每分钟重新绘制一次该值。