我正在从 Bootstrap DateTimePicker 迁移到 Fullcalendar v4,我的问题是过滤事件。
使用 DateTimePicker,我可以更自由地操作日历上显示的事件(似乎 Fullcalendar v3 比 v4 更自由)。
我找不到将事件从数组放置到屏幕的方法。到目前为止,这就是我的代码的样子
var calendar = new FullCalendar.Calendar(element, {
plugins: [ 'dayGrid', 'timeGrid', 'list', 'interaction', 'bootstrap' ],
themeSystem: 'bootstrap',
events : function(info, successCallback, failureCallback) {
console.log('events');
self.eventsLoadingRequest(true);
calendarService.getEvents(moment(info.start), moment(info.end)).then(
function(result) {
ko.utils.arrayPushAll(self.events, self.parseByType(result));
self.eventsLoadingRequest(false);
successCallback(ko.utils.arrayMap(self.events(), function(item) { return item.serialize() }));
},
function(error) {
}
);
},
customButtons: {
filterEvents: {
text: 'Events',
click: function() {
self.eventsFilter(true, false);
}
},
filterAll: {
text: 'All',
click: function() {
self.eventsFilter(true, true);
}
},
filterGoals: {
text: 'Goals',
click: function() {
self.eventsFilter(false, true);
}
}
},
header: {
left: 'title',
right: 'prev,today,next dayGridMonth,timeGridWeek,timeGridDay,listWeek, filterEvents,filterAll,filterGoals'
},
navLinks: true,
editable: true,
eventLimit: true
});
eventsFilter 函数将两个数组合并为一个。可以手动调用events : function(info, successCallback, failureCallback)
吗?
我想避免使用多个流和重新加载事件来应用过滤器。