2015-02-05 2 views
0

У меня проблема с 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 
      } 
     } 
    }); 
} 

Мой 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*/ 
+0

У вас есть автообновление в приложении? – jimmiebtlr

+0

Да. Я тестировал с помощью autopublish, как описано – mesosteros

ответ

0

События получить это установлено сразу после сбора устанавливается. Поскольку вы сохраняете его просто как массив, нет будущего запроса, который происходит.

Try что-то вроде

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; 
     } 
    } 
    }); 
} 

В основном вам нужно функции поиска внутри помощника, или называют внутри вычисления для этого помощника. Оставляя его снаружи в области глобального определения, удалите из него всю активность.

+0

Я пробовал это раньше с помощью простого Meetings.find ({}). Fetch(), и он также не работает. Не загружаются события. Фактически, используя {поля: {_id: 0}}, Meteor не позволяет запустить: Исключение в помощнике шаблона: Ошибка: вы не можете наблюдать курсор с {поля: {_id: 0}} – mesosteros

+0

Интересно, я didn Не знаю. – jimmiebtlr

Смежные вопросы