我有一个会话变量,我想用固定的周期更新.说,我希望这个变量每60秒增加1.
在我看来,这样做的最佳位置是相关模板的帮助部分.我第一次尝试描述做到这一点使用的setInterval 这里,但没有工作(功能就似乎不重复).
然后我尝试了我认为简单的解决方案,但这也行不通.见下文.辅助变量'currentPosition'应该返回当天的当前分钟(加上偏移量).但是,它仅在首次调用模板时以及在"事件"部分中定义的函数中更改会话变量"offset"时执行此操作,该函数响应特定div上的单击("下一个"按钮) .
currentPosition: function () {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var w = h * 60 + m;
Session.set("position", w + Session.get("offset"));
return Session.get("position");
},
Run Code Online (Sandbox Code Playgroud)
我认为上面的帮助器会每分钟主动更新'currentPosition'的值.但事实并非如此.
所以,我的问题是,如何调整会话变量每个,比如说60秒,增加1比1,而变量调整时,会话变量的新值会反映在app中.
(如果有一个简单而完全不同的解决方案适用于流星,我不知道它,所以如果我遗漏了一些明显的东西,请指出它.)
当我加载页面时一切正常,但是:为什么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)