Я мигрирую из 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)
?
Я хочу избежать использования нескольких потоков и перезагрузки событий для применения фильтра.