Fullcalendar v5 удаляет все события при нажатии кнопки

Я хочу удалить все события в fullcalendar v5 одним нажатием кнопки, приведенный ниже код отлично работает

calendar.addEventSource([
    {
      title: 'Business Lunch',
      start: '2020-04-03T01:00:00',
    },
]);

Но как я могу удалить / очистить / удалить все события после нажатия кнопки? В более старой версии fullcalendar есть этот метод

calendar.fullCalendar( 'removeEvents', []);

А как насчет v5? Я попробовал приведенный ниже код, но он выдает ошибкуremove is not a function. Я даже пробовалcalendar.refetchEvents();но ничего не работает.

$('.button').click(function(event) {
    calendar.remove();
});

3 ответа

Fullcalendar v5 удалить все события

      calendar.removeAllEvents();

Должен вызываться в экземпляре источника события. Используйте getEventSources.

removeEvents = calendar.getEventSources();

removeEvents.forEach(event => {
     event.remove();
});

@tta и @Leandro Lazzaretti:

Отличные ответы! Я искал это и обе работы, но обнаружил важное различие между ними:

      calendar.removeAllEvents(); // This will NOT clear the events source array

и

      removeEvents = calendar.getEventSources();

removeEvents.forEach(event => {
     event.remove(); // this will clear 
});

Вы можете проверить это, выполнив:

      removeEvents = calendar.getEventSources();

removeEvents.forEach(event => {
    event.remove();
});
        
calendar.addEventSource('yourSourceHere');
var e = calendar.getEventSources();
console.log(e);
Другие вопросы по тегам