从外部函数中过滤 Fullcalendar 4

Filter Fullcalendar 4 from external function

我想使用 fullcalendar 版本 4 从外部函数过滤日历。但我似乎无法访问日历实例。有人知道我该怎么做吗?

我认为需要使用:var mycalendar = calendar.view;

目前我可以过滤,但我必须重新创建日历。我想使用加载的原始日历并简单地刷新结果。

function CalendarModalFilter() {

  var post = $('#calendar_filter_form').serialize();
  let searchParams = new URLSearchParams(post);
  var calendarEl = document.getElementById('kt_calendar');
  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: ['interaction', 'dayGrid', 'timeGrid', 'list'],
  });

  NotifyPage('Filtered Calendar!', 'success');

  var FilterSource = {
    url: './demo2/contents/calendar/get.php',
    method: 'POST',
    extraParams: {
      source: searchParams.get("calType")
    }
  };

  var eventSources = calendar.getEventSources();

  var len = eventSources.length;
  for (var i = 0; i < len; i++) {
    eventSources[i].remove();
  }

  calendar.addEventSource(FilterSource);
  calendar.refetchEvents();
  calendar.render();
};

这是日历初始化的一部分:

var initCalendar = function() {

  var todayDate = moment().startOf('day');
  var YM = todayDate.format('YYYY-MM');
  var YESTERDAY = todayDate.clone().subtract(1, 'day').format('YYYY-MM-DD');
  var TODAY = todayDate.format('YYYY-MM-DD');
  var TOMORROW = todayDate.clone().add(1, 'day').format('YYYY-MM-DD');

  var calendarEl = document.getElementById('kt_calendar');
  var containerEl = document.getElementById('kt_calendar_external_events');

  var Draggable = FullCalendarInteraction.Draggable;

  new Draggable(containerEl, {
    itemSelector: '.fc-draggable-handle',
    eventData: function(eventEl) {
      return $(eventEl).data('event');
    }
  });

  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
    eventSources: [fcSources.planificacion],
    //...

如果您使用的是 vanilla fullCalendar,那么在上面的示例代码中 calendar 日历实例(假设变量在范围内)。

演示:https://codepen.io/ADyson82/pen/xxxbKxj - 请注意我如何使用从 new FullCalendar.Calendar 返回的日历变量调用 render()getEvents() 方法。

N.B。 calendar.view gets you the current view object 具体来说。