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可视化。当我离开模板时是否应该终止该函数?我想我找到了解决方案:-祝您愉快;)