在“全日历”中拖动事件或调整事件大小后获取新的资源 ID



我正在使用带有调度程序插件的FullCalendar,并且正在尝试为刚刚拖动或调整大小的事件获取新的资源ID。如果我控制台.log eventResizeeventDragStop函数的event参数,我总是得到事件的初始资源 ID。

知道我该如何实现这一目标吗?

波纹管是我到目前为止的代码:

$('#calendar').fullCalendar({
    schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
    locale: 'ro',
    header: {
        left: '',
        center: 'title',
        right: ''
    },
    defaultView: 'agendaDay',
    views: {
        agenda: {
            titleFormat: 'dddd, D MMMM'
        }
    },
    minTime: '07:00:00',
    maxTime: '24:00:00',
    slotDuration: '00:30:00',
    slotLabelFormat: 'HH(:mm)',
    allDaySlot: false,
    resources: {
        url: '/some/endpoint/here',
        type: 'POST',
        data: {
            type: $('#type').val()
        }
    },
    events: '/some/other/endpoint/here',
    eventOverlap: false,
    eventConstraint: {
        start: '07:00',
        end: '24:00'
    },
    dayClick: function(date, jsEvent, view, resourceObj) {
        var check = moment(date).format('YYYY-MM-DD');
        var today = moment(new Date()).format('YYYY-MM-DD');
        if (check >= today) {
            // Some logic here
        }
    },
    eventClick: function(calEvent, jsEvent, view) {
        var check = moment(calEvent.start).format('YYYY-MM-DD');
        var today = moment(new Date()).format('YYYY-MM-DD');
        if (check >= today) {
            // Some logic here
        }
    },
    eventResize: function(event, delta, revertFunc, jsEvent, ui, view) {
        console.log('Resize', event, jsEvent);
    },
    eventDragStop: function(event, jsEvent, ui, view) {
        console.log('Drag', event);
    }
});

"eventDragStop"(https://fullcalendar.io/docs/eventDragStop(的文档明确指出

它在事件信息被修改之前触发

因此,这就解释了为什么从那里记录资源 ID 时资源 ID 没有更改。

您要处理的回调是"eventDrop"(https://fullcalendar.io/docs/eventDrop(,当拖动停止并且事件数据已更新以反映其新位置时,将触发该回调。

例如:

eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) { 
  console.log("Resource: " + event.resourceId);
}

应该得到你想要的信息。

显然,如果您只调整无法更改其所属资源的事件大小,则这种情况与您的问题无关。

最新更新