Events 铁路由器路线';已加载';事件
我对iron router有点陌生,但我很好奇是否有一个事件处理程序可以在路由加载后定义。如果我试图在Meteor.startup中调用Router.current().data(),则会得到Router.current()的“未定义”。我想知道,一旦数据加载到该路径中,如何“正确”开始操作…您使用的代码很好-Events 铁路由器路线';已加载';事件,events,meteor,iron-router,Events,Meteor,Iron Router,我对iron router有点陌生,但我很好奇是否有一个事件处理程序可以在路由加载后定义。如果我试图在Meteor.startup中调用Router.current().data(),则会得到Router.current()的“未定义”。我想知道,一旦数据加载到该路径中,如何“正确”开始操作…您使用的代码很好-Router.current().data() 问题是这里有一个竞赛条件。这里有两件事,Meteor.startup可能在路由器决定其路由之前或之后运行。如果它在路由加载之前运行,Rout
Router.current().data()
问题是这里有一个竞赛条件。这里有两件事,Meteor.startup可能在路由器决定其路由之前或之后运行。如果它在路由加载之前运行,Router.current()
将为null
您可能想考虑将代码放在路由的<代码>后缀< <代码>中。这样,它也将在正确的页面上运行
Router.current().data()
将返回不同路由上的错误数据
另一件需要记住的事情是,使用Meteor,您首先下载html、js和css并加载。然后数据就在后面,所以当你在页面加载时寻找数据时,你必须先等待它,否则你就什么都没有了
Iron Router还有一个名为onData
的钩子,当相应路由的data()
发生变化时,该钩子会反应性地重新运行。您可以使用它来确保数据可用,并在所有内容正确加载后运行数据