Meteor Can';t将流星收集的数据放入阵列
我正在学习Meteor,我试图将Collection.find()的结果传递到and数组中(使用一个变量),我拥有的简单代码是(在根目录下的文件中): 该页面没有显示任何内容,但使用控制台(CalEvents.find().fetch())可以看到我的数据库中有数据,但“events”变量为空。。。 我不明白为什么,因为我尝试了其他一些事情,比如更改文件名和移动代码以保证正确的顺序。 我已经尝试使用CalEvents.find().fetch()创建一个数组并将结果放入一个变量,但我无法做到。。。Meteor Can';t将流星收集的数据放入阵列,meteor,Meteor,我正在学习Meteor,我试图将Collection.find()的结果传递到and数组中(使用一个变量),我拥有的简单代码是(在根目录下的文件中): 该页面没有显示任何内容,但使用控制台(CalEvents.find().fetch())可以看到我的数据库中有数据,但“events”变量为空。。。 我不明白为什么,因为我尝试了其他一些事情,比如更改文件名和移动代码以保证正确的顺序。 我已经尝试使用CalEvents.find().fetch()创建一个数组并将结果放入一个变量,但我无法做到。。
有人知道我遗漏了什么这么简单吗?…你使用自动订阅吗 您可能需要确保sbscription已经准备好。见和 您在控制台中确实看到
CalEvents.find().fetch()。但是在您的事件=[]
code(我假设它位于client
目录下的一个文件中,您可能会假设订阅数据已经到达,而实际上它还没有到达
Chrome的设备模式(DevTools中搜索图标附近的“手机”图标)是一个有用的调试工具,它可以让您模拟慢速网络(例如GPRS,每个请求延迟500毫秒).Hi Dan!是的,我有autopublish。我删除了它,并将数组代码更改为订阅中用作回调的函数,它成功了!你认为使用Iron Router WaitOn和其他工具可以轻松处理此问题吗?或者……否则,我们将不得不关注几乎所有订阅不?谢谢!是的,Iron:router's waitOn使处理订阅变得更容易。我建议阅读和(在许多情况下甚至比iron:router的方法更好)。此外,不客气,如果有用,请随意投票/接受答案,并记住选择比user3481111更具描述性的StackOverflow用户名:)你说得对,丹……似乎没有一个合适的名字,我无法投票:(……但我已经接受了你的答案(我想)。再次感谢你,@user3481111:看一看。这是有史以来最著名的StackOverflow用户Jon Skeet的帖子。
CalEvents = new Mongo.Collection('calevents'); //creating a collection
/*------------------------- Populating the database with dummy data-------*/
if (Meteor.isServer) {
Meteor.startup(function () {
if (CalEvents.find().count() === 0) {
CalEvents.insert({
title: "Initial room",
start: '2010-02-02'
});
}
});
}
/*--------------- Creating an array from the collection-----------------*/
events = [];
calEvents = CalEvents.find({});
calEvents.forEach(function(evt){
events.push({
title: evt.title,
start: evt.start,
})
});