首页 > 解决方案 > 在 FullCalendar 中移动事件时,结束值为 null

问题描述

我正在使用FullCalendar 4.3.1,当我将一项任务(事件)从一天移动到另一天时,我收到的end字段为空。

我像这样初始化日历:

document.addEventListener('DOMContentLoaded', function() {
    let calendarElement = document.getElementById('calendar');
    calendar = new FullCalendar.Calendar(calendarEl, {
      locale: 'es',
      plugins: ['interaction', 'dayGrid', 'timeGrid'],
      header: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth, timeGridWeek, timeGridDay'
      },
      defaultDate: '0000-00-00',
      navLinks: true, // can click day/week names to navigate views
      selectable: true,
      selectMirror: true,
      select: function(data) {
        // Not relevant
      },
      editable: true,
      eventLimit: true, // allow "more" link when too many events
      events: [],
      eventRender: function(info) {
      },
      eventDrop: function(info) { <-- (1) 
        moveTask(info.event.id, info.event.start, info.event.end);
      },
      eventResize: function(info) {
        moveTask(info.event.id, info.event.start, info.event.end);
      },
      eventClick: function(info) {
         // Not relevant
       }
    });
    calendar.render();
    fillCalendar(); <- Custom method to fill the calendar
});

因此,如果我将一项任务从周三移至周二,在(1)我得到id,start字段,但随后end字段为空。

阅读eventDrop 文档,它说它是一个带有and的eventObjectevent字段。startend

另外,我没有allDay财产。因为它可以用end值推断:

日期可解析的东西。当您的活动结束时。如果您的事件是明确的 allDay,则小时、分钟、秒和毫秒将被忽略。如果省略,您的事件将显示为具有默认持续时间。有关详细信息,请参阅 defaultAllDayEventDuration、defaultTimedEventDuration 和 forceEventDuration。

注意:此值是独占的。例如,如果您有一个在 2018-09-03 结束的全天活动,那么它将跨越 2018-09-02 并在 2018-09-03 开始​​之前结束。

这里有解释:解释

并且事件是从 DDBB 填充的,其中所有事件都有一个start和这样的end日期。这是一个字典数组:

{'id': row['id'], 'title': row['title'], 'start': row['start'], 'end': row['end'], 'backgroundColor': row['color'], 'borderColor': row['color']}

那么,我做错了什么导致endget null

问候。

- 编辑:

我添加了一张图片,其中包含填充 FullCalendar 的数据。

数据调试器

标签: javascriptfullcalendarfullcalendar-4

解决方案


推荐阅读