【问题标题】:Meteor redraw clock every second流星每秒重绘时钟
【发布时间】:2013-12-19 04:29:29
【问题描述】:
  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();

【问题讨论】:

    标签: meteor


    【解决方案1】:

    该方法不起作用的原因是它不是响应式数据源。

    试试下面的。

    Template.display_time.time = function() {
        return Session.get('time');
    };
    
    Meteor.setInterval(function() {
        Session.set('time', getTime());
    }, 1000);
    

    查看 Deps 上的文档

    “Meteor 有一个简单的依赖跟踪系统,它允许它 会话时自动重新运行模板和其他计算 变量、数据库查询和其他数据源发生变化。”

    【讨论】:

    • 效果很好,谢谢。我一直期待事情会比他们需要的更困难:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2020-05-25
    • 2018-02-18
    相关资源
    最近更新 更多