在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仅提及方法setProp
,setExtendedProp
,setStart
,setEnd
,setDates
,setAllDay
,moveStart
,moveEnd
,moveDates
替换updateEvent
-资源丢失。
我当前的解决方法是再次删除并添加事件:
calendar.getEventById(data.event.id).remove()
calendar.addEvent(data.event)
如何将事件移到另一个资源,而无需再次加载和初始化整个事件?
答案 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 ]);