具有相同控制器的路由是否订阅服务器n次或只订阅一次?

时间:2015-05-04 23:48:47

标签: meteor iron-router

我有一个带有四个标签的标签,每个标签都有一个带有相同控制器的路径。

所有四个标签共享相同的数据menu,但使用不同的数据部分。

每次点击标签时,它都会订阅服务器吗?

例如,我第一次点击tab1时,会联系服务器并获取数据menu,然后点击tab2,它会再次联系服务器以获取数据{{ 1}}即使我已经获得了数据?

如果是这样,我该如何避免这种情况?也许我应该重新设计代码,有什么好主意吗?

menu

1 个答案:

答案 0 :(得分:0)

随着IR的成熟,这种情况有所改变。我相信当前的实现,如果您在使用相同参数进行相同订阅的路由之间进行更改,则不会停止并再次启动订阅。换句话说,在标签之间切换不应该开始和停止订阅(假设this.params._id保持不变)。

您可以通过向console.log('here')发布商的第一行添加menu来证明(或反驳)此问题。切换选项卡时,请检查命令行控制台。如果'在这里'只打印一次,你就会得到理想的结果。

无论结果如何,subs-manager是在路由之间缓存订阅的普遍接受的解决方案。