我正在查看正在查看的月份的Fullcalendar数据。当我单击Next / Prev Month视图按钮时,它不会熄灭并获取新月的新数据。
如何让Next / Prev按钮再次拨打数据库并拉出当月的记录?
答案 0 :(得分:3)
定义事件回调以向api发出ajax请求。请参阅文档here。这是一个与我的api集成的示例,它使用epoch start和end作为查找中的get参数。
$('#calendar').fullCalendar({
// other options here...
events: function(start, end, callback) {
start = start.getTime()/1000;
end = end.getTime()/1000;
$.ajax({
url: '/api/events/1/?start='+ start + '&end=' + end,
dataType: 'json',
success: function(doc) {
var my_events = [];
$.each(doc.person.events, function (index, elem) {
my_events.push({
title: elem.event.title,
start: elem.event.start,
end: elem.event.end,
});
});
callback(my_events);
}
});
}
});
在我的实际代码中(这是一个精简版本)我使用ajax请求做了更多。您还可以使用fullcalendar的json feed events来简化此操作,该docs将为您传递开始和结束纪元日期获取参数。例如:
$('#calendar').fullCalendar({
events: "/api/events/1/"
});
这两种解决方案都会对您的服务器进行api调用,例如http://yourwebsite.com/api/events/1/?start=123454444&end=12355324234
,因此您需要设置服务器以便对其进行适当的处理。
注意:如果您想知道,这些网址中的“1”用于标识用于获取事件的用户的ID。
fullcalendar的{{3}}非常棒,阅读它们,然后再次阅读它们。
答案 1 :(得分:0)
您需要告诉控件在初始化时从何处加载事件数据。您可以选择指定要编写的a json feed,an array of events或a function,这将检索所有事件。
如果使用函数或json方法,则fullcalendar控件将仅尝试加载用户尝试查看的范围的数据。因此,当用户导航到下个月时,将从Feed /函数中检索该月份事件。
答案 2 :(得分:0)
我写了一篇关于sdolan答案的变体。这个例子在这里:
jquery fullcalendar: calling events on clicking prev and next button in fullcalendar