我在我的应用程序中使用铁路由器,但是我正在尝试使用Blaze挂钩系统,我在路由上看到了一些问题。 我认为“之前”钩子在动作方法之前只调用一次。但事实上,它被调用了两次,一次在onData之前,一次在onData之后......所有在每次挂钩之前都会被播放。
为什么?
这里有一个示例应用https://github.com/Rebolon/meteor-sample-simpleVote/tree/bug/routing
答案 0 :(得分:5)
如文档中所述
onBeforeAction 在动作函数之前运行(如果涉及反应,则可能多次)。
这意味着它在页面加载时运行一次,如果在其中有任何反应变量则再次运行。因此,如果您的onBeforeAction
包含一个反应变量,并且它会发生变化,那么它将再次运行。
因此,如果您有订阅或您在那里做的事情,它将再次运行。很可能您在data
方法中使用了相同类型的反应组件。这就是你发现它多次运行的原因。