我怎样才能完成反应日期 [英] How can i accomplish reactive dates
本文介绍了我怎样才能完成反应日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建消息列表,显示消息的发送时间.
I am creating list of messages that shows how long ago the message was sent.
这是我的消息集
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();
}
});
我怎样才能让我的助手每分钟更新一次?现在除非我输入新消息或刷新页面,否则它不会响应.
How can i make it so that my helper updates each minute? Right now it is not reactive unless I enter a new message or refresh the page.
更新
Meteor-livestap 正是这样做的.
推荐答案
将您的助手更改为:
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")
,并强制您的助手重新计算.这应该确保时间每分钟保持反应.
What this does is change Session.get("time")
every minute, and forces your helper to recalculate. This should ensure the time stays reactive every minute.
这篇关于我怎样才能完成反应日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文