我正在创建消息列表,显示消息发送的时间。
这是我的短信集合
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就是这样做的。
答案 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")
,并迫使助手重新计算。这应该确保时间每分钟都保持反应。