我怎样才能完成被动日期

时间:2014-12-21 10:38:20

标签: meteor

我正在创建消息列表,显示消息发送的时间。

Screenshot

这是我的短信集合

Messages = new Mongo.Collection('messages');
Messages.attachSchema(new SimpleSchema({
    created: {
        type: Date
    },
    text: {
        type: String
    }

}));

这是我的布局

{{#each messages}}

            <li class="message">
                    <span class="message-text">{{text}}</span>
                    <span class="message-date">{{timeAgo created}}</span>
            </li>

{{/each}}

这是我的帮手

UI.registerHelper('timeAgo', function (context, options) {
    if (context) {
        return moment(context).fromNow();

    }
});

我怎样才能让我的助手每分钟更新一次? 现在它不会被动,除非我输入新消息或刷新页面。

更新

Meteor-livestap就是这样做的。

1 个答案:

答案 0 :(得分:5)

将你的助手改为:

Template.registerHelper('timeAgo', function (context, options) {
    Session.get("time");
    if (context) {
        return moment(context).fromNow();
    }
});

Meteor.setInterval(function() {
    Session.set("time", new Date().getTime());
}, 60000);

这样做每分钟都会改变Session.get("time"),并迫使助手重新计算。这应该确保时间每分钟都保持反应。