Momentjs不会更新时间.fromNow()

Mas*_*ini 4 meteor

当我加载页面时一切正常,但是:为什么momentjs不更新时间?
如果我插入了一个新帖子,那么momentjs不会在一分钟之前更新几秒前的文本.

这就是我正在做的事情.

我添加了momentjs:moment包裹

注册了帮手

UI.registerHelper('timeAgo', function(datetime) {
    return moment(datetime).fromNow();
});
Run Code Online (Sandbox Code Playgroud)

在模板中

<template name="postItem">
    <li>
      {{text}} - {{timeAgo createdAt}}
    </li>
  {{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)

输出是

Hi! - a few seconds ago
Hello! - 23 minutes ago    
Run Code Online (Sandbox Code Playgroud)

Aks*_*hat 6

日期不是反应变量,因此在时差发生变化时不会刷新.

您可以通过强制它重新计算每分钟(或自定义间隔)来使其成为反应性的:

UI.registerHelper('timeAgo', function(datetime) {
    Session.get('time');
    return moment(datetime).fromNow();
});

setInterval(function() {
    Session.set("time", new Date())
}, 60000); //Every minute
Run Code Online (Sandbox Code Playgroud)

这将强制帮助程序每分钟重绘一次值.