Javascript Meteor-模板销毁时停止跟踪程序自动运行(用户离开页面)

Javascript Meteor-模板销毁时停止跟踪程序自动运行(用户离开页面),javascript,mongodb,meteor,meteor-tracker,Javascript,Mongodb,Meteor,Meteor Tracker,在Meteor模板中,我有一个名为ohlcInit()的函数,当Mongo中有新数据可用时,该函数将自动运行: Template.Live.rendered = function(){ function ohlcInit() { // computations run here } Tracker.autorun(function() { ohlcInit(); }); }; 当用户位于定义了所有这些内容的页面/模板上时,这非常有效,但是一旦用户导航到站

在Meteor模板中,我有一个名为
ohlcInit()
的函数,当Mongo中有新数据可用时,该函数将自动运行:

Template.Live.rendered = function(){

  function ohlcInit() {
    // computations run here
  }

  Tracker.autorun(function() {
      ohlcInit();
  });
};
当用户位于定义了所有这些内容的页面/模板上时,这非常有效,但是一旦用户导航到站点上的另一个URL并且模板被销毁,控制台就会抛出错误:

跟踪器重新计算函数异常:未定义不是函数 TypeError:undefined不是函数 在ohlcInit() 在 在Tracker.compute.\u compute() 在Tracker.Computation.\u重新计算() 在Tracker.flush()处

当用户导航到新的URL/模板时,如何安全地停止/结束自动运行计算?

我使用的是
iron:router

使用新功能,该功能在模板销毁后自动清理自身。要在
呈现的
回调中使用它,只需将
Tracker.autorun
替换为
this.autorun

谢谢!刚刚在Meteor github repo中看到了同样的解释:我遇到了上述相同的问题,但我在客户端上的Meteor方法回调中启动了我的
Tracker.autorun
调用。我正在服务器上启动一个进程,如果启动进程没有错误,则需要侦听一些数据库值。他们的工作很好,除了我得到同样的上述错误时,销毁模板。使用
this.autorun
在回调范围内不起作用。我假设由于范围问题,无法在
.destrocted
中调用stop。我找到了答案。在调用Meteor方法之前,只需要在正确的范围内设置一个
var template=template.instance()
。然后在回调代码中调用
template.autorun(函数…
引用上述变量效果很好。您好@DavidWeldon,,您能举个简单的例子吗?。?我已经阅读了文档,但不理解,,@KarinaL,请查看我对和的回答。希望这些会有所帮助。如果您有一些特定的代码无法使用,我建议您提出一个新问题。