使用新的和正在开发的框架的挑战之一是您在网络上找到的建议通常已经过时了。这双重适用于 Meteor,其中 SO 答案和网络文章通常针对 1.0.x 之前的版本或 1.0.x 早期版本,或者针对之前版本的 Iron-router,或者在他们上周推出功能之前,等等.
仍然对如何在让模板等待订阅准备就绪的上下文中使用 subscriptionsReady() 函数感到困惑。我当然需要它,因为我的模板尝试在大约 3/4 的时间没有数据的情况下进行渲染。
如何使用 subscriptionsReady()?我已经看到在 html 中使用它的示例,我认为这有点愚蠢(模糊演示和功能)。如何在模板的代码部分使用它?
它是否用于带有某种waitOn的铁路由器?我是否在模板渲染器中用 while 循环包装它?你能举一个简化的例子吗?
强制性代码的东西......我的模板路线:
Router.route('/', {
path: '/',
template: 'navmenu',
onBeforeAction: function() {
this.next();
}
});
我的订阅:
// Chapters
ChapterCollection = new Mongo.Collection("ChapterCollection");
if(Meteor.isClient){
Meteor.subscribe('users');
Meteor.subscribe('roles');
Meteor.subscribe('ChapterCollection');
}
html 部分非常简单,一些 HTML 包含在模板标签中。
我的模板代码:
Template.navmenu.rendered = function() {
// Load all chapters from collections
// Unless it decides to delay and then we are *%&@ed
chapterArray = ChapterCollection.find().fetch();
... other stuff ...
}
谢谢您的帮助。