Meteor Route.go()保留了之前的所有JS代码

时间:2014-12-06 10:56:48

标签: meteor iron-router

我刚注意到,当我在Meteor中执行Route.go()时,它会保留所有上一页的模板处理程序/事件/渲染JS代码。

例如,在Route.go()之前的前一页上,我每隔x秒运行一次setInterval(...)。

在Route.go()之后,这个setInterval继续触发,但是由于所需的元素不再存在,它只是一直产生错误。

这是设计的吗?我如何路由并开始新鲜?

注意:点击链接也是如此,因为从技术上讲,这也是一条路线(如果链接是作为路线创建的)

2 个答案:

答案 0 :(得分:1)

如果您使用Meteor.setInterval()设置间隔,则必须自行清除Meteor.clearInterval()

Check out the doc

答案 1 :(得分:0)

使用Router.go与点击超链接或发出服务器端重定向并不相似。

期望Route.go像非绑定超链接(即物理发出新的GET请求)或发出服务器端301,但这不是铁的方式很常见路由器工作。

它将处理当前加载的窗口环境中的路径,通常使用HTML5 pushState交换URL但处理Meteor内部的路由。

这意味着任何现有的setIntervals或其他" global"除非您明确停止处理程序,否则事件将继续运行。