如何更改事件资源

时间:2019-03-23 17:45:06

标签: fullcalendar fullcalendar-4

在FullCalender 4.0中更改了资源处理。

在FullCalendar 3.x中,我使用以下命令更改了事件的资源:

event.resourceId = newResourceId;

在FullCalendar 4.0中,我找不到正确的方法... 我当前的代码是:

var calendar_event = calendar.getEventById(data.event.id)
if (calendar_event) {
  calendar_event.setProp('title', data.event.title)
  calendar_event.setProp('resourceIds', [data.event.resourceId])
}

setProp似乎不是正确的方法,因为事后该事件未反映网格内的更改,仅标题已更改为新标题。

getResources()的设置器,例如setResources()不存在。

https://fullcalendar.io/docs/resource-data上的官方文档仅包括获取资源,而没有以编程方式为现有事件设置新资源。

迁移指南https://fullcalendar.io/docs/upgrading-from-v3仅提及方法setPropsetExtendedPropsetStartsetEndsetDatessetAllDaymoveStartmoveEndmoveDates替换updateEvent-资源丢失。

我当前的解决方法是再次删除并添加事件:

calendar.getEventById(data.event.id).remove()
calendar.addEvent(data.event)

如何将事件移到另一个资源,而无需再次加载和初始化整个事件?

1 个答案:

答案 0 :(得分:1)

事件的编辑资源为added in version 4.0.2

documentation的用法描述如下:

通过ID:

var event = calendar.getEventById('1');
event.setResources([ 'a' ]); // set a single resource
event.setResources([ 'a', 'b' ]); // set multiple

按资源:

var resourceA = calendar.getResourceById('a');
var resourceB = calendar.getResourceById('b');

var event = calendar.getEventById('1');
event.setResources([ resourceA, resourceB ]);