Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function Meteor-模板onrendered中的递归函数_Function_Templates_Recursion_Meteor - Fatal编程技术网

Function Meteor-模板onrendered中的递归函数

Function Meteor-模板onrendered中的递归函数,function,templates,recursion,meteor,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; }

我收到以下代码的错误:

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
函数中吗?我还尝试将它直接包含在带有
标记的模板中,到目前为止它还可以工作!但这不是一种糟糕的做法吗?

这与递归无关,您只需将函数引用传递给setTimeout,而不是字符串:

setTimeout(chronometer, 1000);

... 谢谢你,我真是太蠢了。。。我还有第二个问题(希望不会像我的第一个问题那么糟糕),每次我离开页面并返回时,计时器功能都会被复制,这导致奇怪的ui可视化。当我离开模板时是否应该终止该函数?我想我找到了解决方案:-祝您愉快;)