在使用meteor.js时,如何从Mongodb获取数据以在Fullcalendar中显示

时间:2013-06-20 17:17:15

标签: mongodb meteor fullcalendar

我正在尝试将Fullcalendar与Meteor.js一起使用。似乎Fullcalendar可以将JSON用于其事件。像这样:

$('#calendar').fullCalendar({
events: [
    {
        title  : 'event1',
        start  : '2013-06-01'
    },
    {
        title  : 'event2',
        start  : '2013-06-05',
        end    : '2013-06-07'
    },
    {
        title  : 'event3',
        start  : '2013-06-09 12:30:00',
        allDay : false // will make the time show
    }
]

});

我正在尝试将此数据存储在Mongodb中,然后将数据输出到完整日历。

我不确定如何实现这一目标,并希望得到任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

嗨rjsandman尝试使用搜索堆栈进行fullcalendar ajax调用和JSON调用,使用does tecnologys加载事件并参考Fullcalendar文档。我相信你能搞清楚。

要根据您的服务器端技术输出您的数据,您必须像已经格式化的事件一样将字符串或格式良好的XML发送回客户端。

这是关于如何发回事件的示例:

XML格式:

<?xml version="1.0" encoding="UTF-8"?>
  <root>
    <events>
     <event title="Mytitle" start="20-03-2014 10:30:00" end="20-03-2014 12:30:00" allDay=false></event>
     and so on...
    </events>
  </root>

JSON格式:

[
   {"title":"Mytitle","start":"20-03-2014 10:30:00","end":"20-03-2014 12:30:00" "allDay":false},
   {"title":"Mytitle","start":"20-03-2014 10:30:00","end":"20-03-2014 12:30:00" "allDay":false},
   {"title":"Mytitle","start":"20-03-2014 10:30:00","end":"20-03-2014 12:30:00" "allDay":false}
]

祝你好运

答案 1 :(得分:0)

您必须使用事件数据功能来生成事件对象。

假设您有一个名为events的模板:

./ events.js

import { Events } from './path/to/your/mongo/collection';

Template.events.onRendered( () => {
    $('#calendar').fullCalendar({
        events: (start, end, timezone, callback) => {
            let data = Events.find().fetch().map(() => {
                return event; //data is now an array with JSON format
            });

            if (data) {
                callback(data);
            }
        }
    });
});

更多信息here