代码之家  ›  专栏  ›  技术社区  ›  Cosmin

在FullCalendar中拖动或调整事件大小后获取新的资源id

  •  0
  • Cosmin  · 技术社区  · 6 年前

    我正在将FullCalendar与调度程序插件一起使用,并尝试获取刚刚拖动或调整大小的事件的新资源id。如果我控制台。记录 event 的参数 eventResize eventDragStop 函数我总是获取事件的初始资源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);
        }
    });
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   ADyson    6 年前

    “eventDragStop”文档( https://fullcalendar.io/docs/eventDragStop )明确声明

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

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

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

    例如:

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

    应该能得到你想要的信息。

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