我遇到Meteor和FullCalendar包(rzymek:FullCalendar)的问题,如果我直接定义一个事件数组,它会显示事件,但如果我从我的Collection中获取它们,它甚至不会填充数组,即使Find方法在控制台中工作并向我显示我的事件(事件数组在控制台中显示为空)。我没有删除自动发布或不安全的包:这是一个基本的测试。
main.js文件:
if (Meteor.isServer) {
Meteor.startup(function() {
if (Meetings.find().count() === 0) {
Meetings.insert({
title: 'All Day Event',
start: '2015-02-06'
});
}
});
}
if (Meteor.isClient) {
/* //this array of events shows if uncommented
events = [
{
title: 'reuni',
start: '2015-02-06'
}
]*/
Template.calendar.helpers({
options: function() {
return {
events: events
}
}
});
}
我的collection.js文件(在lib文件夹中):
Meetings = new Mongo.Collection('meetings');
events = Meetings.find({}, {fields: {_id:0} }).fetch(); /*This will only show an empty array and not the events array that I fetch*/
事件在集合设置后立即设置。由于您只是将其保存为一个数组,因此不会发生将来的查询。
试试之类的东西
if (Meteor.isClient) {
Template.calendar.helpers({
options: function() {
var events = [];
Meetings.find().forEach(function(m){
events.push(
// build object with needed properties here
);
});
return {
events: events;
}
}
});
}
基本上,您需要在辅助对象中使用find函数,或者在该辅助对象的计算中调用find函数。将其留在全局定义区域之外,将删除其中的所有重新活动。