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

一个 setter 到getResources(), egsetResources()不存在。

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

迁移指南https://fullcalendar.io/docs/upgrading-from-v3仅提及替换的方法setProp, setExtendedProp, setStart, setEnd, setDates, setAllDay, moveStart, moveEnd,缺少资源。moveDatesupdateEvent

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

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

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

4

1 回答 1

3

4.0.2 版本增加了活动资源编辑功能。

文档描述用法如下:

按 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 ]);
于 2019-04-03T06:43:02.993 回答