Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 集合中的Meteor完整日历事件数组未呈现_Javascript_Arrays_Mongodb_Meteor_Fullcalendar - Fatal编程技术网

Javascript 集合中的Meteor完整日历事件数组未呈现

Javascript 集合中的Meteor完整日历事件数组未呈现,javascript,arrays,mongodb,meteor,fullcalendar,Javascript,Arrays,Mongodb,Meteor,Fullcalendar,我对Meteor和FullCalendar包(rzymek:FullCalendar)有一个问题,如果我直接定义一个事件数组,它会显示事件,但是如果我从我的集合中获取它们,它甚至不会填充数组,即使Find方法在控制台中工作并显示我的事件(事件数组在控制台中显示为空)。 我没有删除自动发布或不安全的包:这是一个基本测试 main.js文件: if (Meteor.isServer) { Meteor.startup(function() { if (Meetings.fin

我对Meteor和FullCalendar包(rzymek:FullCalendar)有一个问题,如果我直接定义一个事件数组,它会显示事件,但是如果我从我的集合中获取它们,它甚至不会填充数组,即使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
            }
        }
    });
}
My collection.js文件(在lib文件夹中):


设置集合后立即设置事件。由于您只是将其保存为一个数组,因此将来不会发生查询

试试像这样的东西

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函数。将其保留在全局定义区域之外,从中删除所有活动。

应用程序中是否有自动发布?是。我用autopublish进行了测试,正如前面所描述的,我曾经用一个简单的Meetings.find({}).fetch()尝试过,但它也不起作用。没有加载任何事件。事实上,通过使用{fields:{u id:0}},Meteor不允许它运行:模板帮助程序中的异常:错误:您可能无法观察到带有{fields:{u id:0}的游标有趣的是,我不知道这一点。
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;
      }
    }
  });
}