由于流星的性质,其中Template.<name>.rendered
在收集之前执行,我可以使用铁路由器waitOn
。铁路由器waitOn在Chrome中不起作用
这是在呈现页面之前等待播放列表启用。它适用于Firefox和IE(具有讽刺意味),但从未在Chrome中使用。
Chrome控制台指出的错误是Cannot read property 'uploadType' of undefined
这很有意义,因为对象/集合无法在Chrome中加载。
我该怎么做才能遇到这个问题? FYI的waitOn是这样的:
//router.js
this.route('videoPlayer',{
path:'/video',
waitOn: function(){
return [Meteor.subscribe('videoPlaylist'), Meteor.subscribe('video')];
}
});
它不单独预订时甚至工作。
有您激活默认'使用'Router.onBeforeAction(“loading”)加载'钩子;'? – saimeunt 2014-09-21 01:43:53
@saimeunt nope。我应该在哪里添加它?据我所知,waitOn是用来保存渲染的。 – 2014-09-21 01:45:17
你可以把它放在你的全局路由器配置中。我认为这个问题可能来自于Chrome浏览器JS引擎比Firefox/IE更快,从而在收集数据仍然不可用的状态下触发第一个有问题的代码评估。 waitOn应该返回你想要等待的订阅,但它需要默认的加载钩子,它负责延迟渲染,直到数据准备就绪。 – saimeunt 2014-09-21 01:50:29