【发布时间】:2010-08-11 18:57:27
【问题描述】:
我正在提取正在查看的月份的 Fullcalendar 数据。当我单击 Next/Prev Month 视图按钮时,它不会出去并获取新月份的新数据。
如何获得 Next/Prev 按钮以再次调用数据库并提取该月的记录?
【问题讨论】:
标签: jquery fullcalendar
我正在提取正在查看的月份的 Fullcalendar 数据。当我单击 Next/Prev Month 视图按钮时,它不会出去并获取新月份的新数据。
如何获得 Next/Prev 按钮以再次调用数据库并提取该月的记录?
【问题讨论】:
标签: jquery fullcalendar
定义事件回调以向您的 api 发出 ajax 请求。请参阅文档here。这是一个与我的 api 集成的示例,它使用 epoch start 和 end 作为查找中的获取参数。
$('#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 简化此操作,它将为您传递开始和结束纪元日期获取参数。例如:
$('#calendar').fullCalendar({
events: "/api/events/1/"
});
这两种解决方案都会像 http://yourwebsite.com/api/events/1/?start=123454444&end=12355324234 这样对您的服务器进行 api 调用,因此您需要设置您的服务器以适当地处理它。
注意:如果您想知道,这些 url 中的“1”用于标识要为其获取事件的用户的 id。
fullcalendar 的docs 很棒,阅读它们,然后再阅读它们。
【讨论】:
events 回调被传递到选项中,然后在 fullcalendar 内部使用参数 start, end, callback 调用。至于文档,请记住,这是一个开发、记录和开源它的人。与大多数其他包装相比,它非常好。 EventObject 文档代码中非常清楚地解释了格式时间的内容。在缺少文档的地方,总有可以参考的源代码。
您需要在初始化时告诉控件从何处加载事件数据。您的选择是指定您编写的a json feed、an array of events 或a function,它们将检索所有事件。
如果使用 function 或 json 方法,fullcalendar 控件将仅尝试加载用户尝试查看的范围内的数据。因此,当用户导航到下个月时,将从提要/函数中检索该月份的事件。
【讨论】:
start 和end 参数来查询您的数据库中只需要的事件!
我在 sdolan 的答案上写了一个变体。例子在这里:
jquery fullcalendar: calling events on clicking prev and next button in fullcalendar
【讨论】: