Pio*_*ski 1 meteor iron-router
我真的在与铁路由器waitOn挣扎.
我有很多订阅,我想等待,在我看来铁路由器正在等待任何事情.
我已经设置了许多订阅(main.js),我想在应用程序启动之前加载它:
Meteor.subscribe("appointments");
Meteor.subscribe("business");
Meteor.subscribe("clients");
Meteor.subscribe("staff");
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几乎所有可能的配置,但我似乎无法让"加载器"显示自己并等待所有订阅准备就绪.我在layoutTemplate('layout')中有一个辅助函数来从数据库中获取一个值但是findOne()返回undefined/null我认为这是因为路由器没有等待订阅...
我的路由器配置.我想了解我如何链接依赖项或创建依赖项等待.
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
waitOn: function () {
console.log('Iron router start');
this.subscribe('clients').wait();
this.subscribe('staff').wait();
this.subscribe('appointments').wait();
this.subscribe('business').wait();
this.subscribe('calendar').wait();
},
action: function() {
if (this.ready()) {
this.render('dashboard');
} else {
this.render('loading');
}
}
});
Run Code Online (Sandbox Code Playgroud)
尝试更改这样的waitOn部分.此外,我认为您可以从main.js文件中删除订阅,并在该waitOn特定路由的路由器功能中编写所需/相关订阅.
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
waitOn: function () {
console.log('Iron router start');
return [
Meteor.subscribe('clients'),
Meteor.subscribe('staff'),
Meteor.subscribe('appointments'),
Meteor.subscribe('business'),
Meteor.subscribe('calendar')
]
},
action: function() {
if (this.ready()) {
this.render('dashboard');
} else {
this.render('loading');
}
}
});
Run Code Online (Sandbox Code Playgroud)