【问题标题】:How can i accomplish reactive dates我怎样才能完成反应日期
【发布时间】:2015-06-05 20:10:35
【问题描述】:

我正在创建消息列表,显示消息是多久前发送的。

这是我的消息集

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 正是这样做的。

【问题讨论】:

标签: meteor


【解决方案1】:

把你的助手改成这样:

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"),并强制您的助手重新计算。这应该确保时间每分钟都保持反应状态。

【讨论】:

  • 谢谢。真的很感激。它确实给了我现在完成任务的方法。但话又说回来,我觉得它是一个快速而肮脏的解决方案。我不知道。做这项工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-12-14
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 2020-10-19
相关资源
最近更新 更多