Template.display_time.time = function() {
var date = new Date();
var hour = date.getHours();
var minute = date.getMinutes();
var now = addZero(hour) + ":" + addZero(minute);
return now
};
目前我正在使用此代码显示时间。 但我一直在尝试使用简单的javascript来每秒更新它,但它不会出现在页面上。 使用上述功能是否有流星友好的方式来做到这一点? 就像在1秒间隔使用setTimeout一样..
我以前使用的javascript。
function updateTime() {
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
if (hours < 10)
{
hours = "0" + hours;
}
if (minutes < 10)
{
minutes = "0" + minutes;
}
var v = hours + ":" + minutes + " ";
setTimeout("updateTime()",1000);
document.getElementById('time').innerHTML=v;
}
updateTime();
答案 0 :(得分:5)
该方法不起作用的原因是因为它不是反应性数据源。
请尝试以下操作。
Template.display_time.time = function() {
return Session.get('time');
};
Meteor.setInterval(function() {
Session.set('time', getTime());
}, 1000);
请参阅Deps文档
“Meteor有一个简单的依赖跟踪系统,允许它 会话时自动重新运行模板和其他计算 变量,数据库查询和其他数据源都会发生变化。“