Meteor - 模板中的递归函数onrendered

时间:2016-03-06 11:27:20

标签: function templates recursion meteor

我收到以下代码的错误:

Template.crowd.onRendered(function () {

var zecsec = 0;
var hours = 1;
var mints = 34;
var seconds = 52;

function chronometer() {
    zecsec += 1;

    // set seconds
    if(zecsec > 0) {
      zecsec = 0;
      seconds += 1;
    }

    // set minutes
    if(seconds > 59) {
      seconds = 0;
      mints += 1;
    }

    // set hours
    if(mints > 59) {
      seconds = 0;
      mints = 0;
      hours += 1;
    }

    $('.chrono').html(hours + 'h ' + mints + 'min ' + seconds + 's');
    setTimeout("chronometer()", 1000);
}
chronometer(); });

当我调用递归计时器功能时会出现问题:

setTimeout("chronometer()", 1000);

Meteor返回以下错误:

Uncaught ReferenceError: chronometer is not defined

我应该将这样的自定义代码放在模板onRendered函数中吗?我还尝试将其直接包含在带有<script>标签的模板中,到目前为止它还可以使用!但这不是一个坏习惯吗?

1 个答案:

答案 0 :(得分:0)

它不是关于递归,你只需要将函数引用传递给setTimeout而不是字符串:

setTimeout(chronometer, 1000);