如何解决Fullcalendar calendar.getEvents() 不返回刚刚加载的 JSON 事件源
我在加载函数中使用 calendar.getEvents() 时遇到问题。在 v3 中,代码如下所示:
$('##calendar').fullCalendar({
...,events: {
url: 'myurl',...
},loading: function(bool) {
$('##loading').toggle(bool);
if (!bool) {
var eventview = $('##calendar').fullCalendar('getView');
var loadedEvents = $('##calendar').fullCalendar('clientEvents',function(events){ return (moment(events.start).format('YYYY-MM-DD') >= eventview.start.format('YYYY-MM-DD') && eventview.end.format('YYYY-MM-DD') > moment(events.start).format('YYYY-MM-DD'))});
for (i = 0; i < loadedEvents.length; i++) {
... // I inventory the type of events in the current month here
};
},... }
现在有了 v5,它看起来像这样:
"var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl,{
...,eventSources: [{
url: 'myurl',...
}],loading: function(bool) {
if (!bool) {
var eventview = calendar.view;
var loadedEventTypes = new Array();
var loadedEventTypesHTML = ''; var loadedEventTypesstyles = '';
var loadedEvents = calendar.getEvents(); // filter removed for debugging
for (i = 0; i < loadedEvents.length; i++) {
...
};
},... }
虽然文档说在 v3 clientEvents 和 v4/5 getEvents 中都“...返回一个 FullCalendar 存储在客户端内存中的事件对象数组。”这不是我所看到的。
在 v3 代码中,clientEvents 确实检索刚刚通过 JSON url 加载的事件,但是在 v5 中,getEvents 在通过提供的 url 加载 json 之前返回事件数组; getEvents 事件集不包括刚刚加载(和显示)的 JSON。它确实保存了最后一次 json 调用之前获取的事件。即使事件显示在日历中,页面第一次加载数组也是空的。
是否有人对如何获取刚刚加载并在 v5 中显示的事件有任何建议。
这是 FullCalendar 中的错误吗?
解决方法
如果您想在加载后对事件进行处理,我认为您应该查看 Event Render Hooks 以及 eventDidMount 中的更多内容,而不是加载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。