Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 铁路由器路线';已加载';事件_Events_Meteor_Iron Router - Fatal编程技术网

Events 铁路由器路线';已加载';事件

Events 铁路由器路线';已加载';事件,events,meteor,iron-router,Events,Meteor,Iron Router,我对iron router有点陌生,但我很好奇是否有一个事件处理程序可以在路由加载后定义。如果我试图在Meteor.startup中调用Router.current().data(),则会得到Router.current()的“未定义”。我想知道,一旦数据加载到该路径中,如何“正确”开始操作…您使用的代码很好-Router.current().data() 问题是这里有一个竞赛条件。这里有两件事,Meteor.startup可能在路由器决定其路由之前或之后运行。如果它在路由加载之前运行,Rout

我对iron router有点陌生,但我很好奇是否有一个事件处理程序可以在路由加载后定义。如果我试图在Meteor.startup中调用Router.current().data(),则会得到Router.current()的“未定义”。我想知道,一旦数据加载到该路径中,如何“正确”开始操作…

您使用的代码很好-
Router.current().data()

问题是这里有一个竞赛条件。这里有两件事,Meteor.startup可能在路由器决定其路由之前或之后运行。如果它在路由加载之前运行,
Router.current()
将为
null

您可能想考虑将代码放在路由的<代码>后缀< <代码>中。这样,它也将在正确的页面上运行

Router.current().data()
将返回不同路由上的错误数据

另一件需要记住的事情是,使用Meteor,您首先下载html、js和css并加载。然后数据就在后面,所以当你在页面加载时寻找数据时,你必须先等待它,否则你就什么都没有了

Iron Router还有一个名为
onData
的钩子,当相应路由的
data()
发生变化时,该钩子会反应性地重新运行。您可以使用它来确保数据可用,并在所有内容正确加载后运行数据