我有代码
datas = new Meteor.Collection("datas")
var data = datas.findOne('101abcde1f2345ac00000001')
if (Meteor.is_client) {
Meteor.startup(function () {
console.log(data.name)
});
}
但我在控制台中得到的是undefined
错误。但是,如果我在Web检查器的javascript控制台中键入console.log(data.name)
(大概是在某种等待之后它可以工作。我已经将代码放在Meteor.startup中以确保DOM准备就绪。我可能做错了什么?
答案 0 :(得分:6)
您似乎正在使用autopublish
包。并且(当然),Meteor.startup
不等待订阅完成。
通常,我们使用反应性上下文&数据在Meteor中执行此操作 -
datas = new Meteor.Collection("datas")
if (Meteor.is_client){
Meteor.autosubscribe(function(){
var data = datas.findOne('101abcde1f2345ac00000001');
if (data){ console.log( data.name )}
});
}
任何时候datas
集合都有变化(?),Meteor.autosubscribe
中的函数都会被调用。