当我加载页面时,一切工作正常,但是:为什么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


这将迫使助手每分钟重新绘制一次该值。

09-11 19:02