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
};
Run Code Online (Sandbox Code Playgroud)
目前我正在使用此代码来显示时间.但我一直在尝试使用简单的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();
Run Code Online (Sandbox Code Playgroud)
方法不起作用的原因是因为它不是反应性数据源.
请尝试以下方法.
Template.display_time.time = function() {
return Session.get('time');
};
Meteor.setInterval(function() {
Session.set('time', getTime());
}, 1000);
Run Code Online (Sandbox Code Playgroud)
请参阅Deps文档
"Meteor有一个简单的依赖跟踪系统,它允许它在会话变量,数据库查询和其他数据源发生变化时自动重新运行模板和其他计算."