gpt4 book ai didi

javascript - 我应该如何确保 `Template.autorun()` 没有运行?

转载 作者:行者123 更新时间:2023-12-03 07:34:39 25 4
gpt4 key购买 nike

我有一个模板时间线,其中显示当前时间和从中生成的值。为此,我将一个 reactiveVar 附加到我的模板,并在附加到同一模板的 autorun 中更新它。

它的外观如下:

Template.Timeline.created = function(){
this.time = new ReactiveVar(moment(new Date().getTime()).format('dddd d MMMM YYYY - HH:mm:ss'));
};
Template.Timeline.rendered = function(){
var self = this;
self.autorun(function(){
Meteor.setInterval(function(){
console.log("tick!");
self.time.set(moment(new Date().getTime()).format('dddd d MMMM YYYY - HH:mm:ss'));
}, 1000);
});
};
Template.Timeline.destroyed = function(){
console.log("template destroyed");
};

问题是,即使模板被销毁(不是相同的路线,不再显示,我的 console.log("template destroy") 已显示),我也无限期地得到“勾选”控制台日志,就好像模板仍在呈现一样。

我显然错过了一些东西,但我不明白是什么。如果我的 setInterval 模板不活动,为什么它仍然事件?

最佳答案

您需要使用 Meteor.clearInterval 显式清除 setInterval

顺便说一句,您也不需要 self.autorun(),它在这里是多余的。您还可以找到remcoder:chronos包很有用。

关于javascript - 我应该如何确保 `Template.autorun()` 没有运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com