2015-02-05 142 views
0

我有一個與流星和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 2015-02-05 15:58:36

+0

是的。我正在使用自動發佈測試 – mesosteros 2015-02-05 16:03:49

回答

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

基本上你需要查找功能輔助內,或稱計算爲助手裏面。將它留在全球定義區域之外可以消除它的所有重新活動。

+0

我曾嘗試使用簡單的Meetings.find({})。fetch(),但它也不起作用。沒有事件加載。事實上,通過使用{fields:{_id:0}},流星不會讓它運行:模板助手中的異常:錯誤:您可能無法觀察到具有{fields:{_id:0}}的遊標 – mesosteros 2015-02-05 16:21:13

+0

有趣的是,我沒有我不知道。 – jimmiebtlr 2015-02-05 21:25:51