如何更改事件的资源

How to change resource(s) of events

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 似乎不是正确的方法,因为之后的事件没有反映网格内的变化,只是标题已更改为新的。

A setter 到 getResources(),例如setResources() 不存在。

关于 https://fullcalendar.io/docs/resource-data 的官方文档仅包含 resource-fetching,并未以编程方式为现有事件设置新事件。

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

我目前的解决方法是删除并重新添加事件:

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

如何在不加载和初始化整个事件的情况下将事件移动到另一个资源?

编辑活动资源已 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 ]);