Javascript Meteor函数在发布和订阅完成加载集合之前执行
我有一个meteor模板助手,它有一个搜索分数文档的功能。如果找不到匹配的文档,它将为用户创建一个新文档。不幸的是,meteor函数执行Javascript Meteor函数在发布和订阅完成加载集合之前执行,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我有一个meteor模板助手,它有一个搜索分数文档的功能。如果找不到匹配的文档,它将为用户创建一个新文档。不幸的是,meteor函数执行var score=UserScores.findOne()在发布和订阅功能完成之前。每次都会创建一个新的UserScore文档。如果启用“自动发布”,此问题将消失,并且不会创建重复记录。如何确保在执行模板助手之前先执行发布和订阅功能 我是否需要在/lib文件夹中放置meteor方法才能正确执行此操作,或者是否有方法在客户端执行此操作 var score = U
var score=UserScores.findOne()代码>在发布和订阅功能完成之前。每次都会创建一个新的UserScore文档。如果启用“自动发布”,此问题将消失,并且不会创建重复记录。如何确保在执行模板助手之前先执行发布和订阅功能
我是否需要在/lib文件夹中放置meteor方法才能正确执行此操作,或者是否有方法在客户端执行此操作
var score = UserScores.findOne();
if(!score) {
score = {
userId: Meteor.userId(),
total: 0,
goal: 200
};
UserScores.insert(score);
}
最简单的方法是进行模板级订阅
Template.myTemplate.onCreated(function() {
var subscription = this.subscribe('publicationName', publicationArguments);
}
这是一种非常简单的方法,但是首先运行助手应该不会有问题
编辑:探索流星博客有一篇关于模板级订阅的文章。我强烈建议您阅读它:谢谢@SirCharlesWatson我需要开始阅读Discover Media博客。“这很有帮助。”卡勒布马尔科夫很高兴我能帮上忙!我强烈推荐购买《发现流星》这本书。这是完全值得的钱,基本上涵盖了一切你需要知道。