在我获得流星知识的过程中,我发现了一个新的障碍。
我在申请时使用了autopublish。
我通过帮助程序注册了Settings
集合,以使值全局可用。
// in settings.js
Settings = new Meteor.Collection('settings');
Settings.insert(
{
logo: 'Comparer Caisses Enregistreuses',
contact: {
human: '01 82 88 19 13',
machine:'0440182881913'
},
headline: 'Comparez les meilleurs fournisseurs de Caisses!',
tagline: "Obtenez jusqu\'à 4 devis gratuits et économisez votre temps et votre argent",
offer: 'Economisez <span class="value">jusqu\'a 40%</span> sur votre caisses',
}
)
然后在client/main.js
Handlebars.registerHelper('view', function(){
return Settings.findOne();
});
我现在已删除autopublish
,我正在尝试重新注册该集合。
在服务器文件夹中:
// server/publication.js
Meteor.publish('settings', function(){
return Settings.findOne();
// or should it be `return settings` so that I can call `.findOne()` in my helper
});
在客户端文件夹中:
// client/main.js
Meteor.subscribe('settings');
Handlebars.registerHelper('view', function(){
// here nothing work
// return settings;
// return Settings.findOne();
// not sure how to call the publication
});
有没有办法通过帮助者订阅出版物?
答案 0 :(得分:0)
Meteor.publish应该用在服务器端代码中,而不是客户端上。
修改强>
您的更新代码:
// server/publication.js
Meteor.publish('settings', function(){
return Settings.findOne();
// or should it be `return settings` so that I can call `.findOne()` in my helper
});
正如您已经指出的那样,它应该是return Settings.find()
,因为作为Meteor.publish
的第二个参数给出的函数应该返回单个或多个游标(不是由{{1返回的单个文档) }})。