我正在使用 FullCalendar V5,我有一个侧边栏显示我在日历上显示的资源。在日历的第一次加载时,我添加了几个资源及其相关事件,一切正常,我可以看到事件并具有它们资源的颜色。
然后,通过单击侧边栏上的资源,我可以删除资源和相关事件,或者相反,我可以添加资源和相关事件。我分别使用 addResource 和 addEvent 方法动态添加资源和事件。这是我的问题,资源和事件添加得很好,但事件仍然是蓝色的,即使事件的 resourceId 属性是资源的 id,它们也不会采用资源的颜色......(下面的截图)。
我通过使用一些 eventSource 对象而不是简单事件来尝试相同的过程,但我不知道它为什么起作用,新添加的事件具有正确的颜色......但我不想使用这个解决方案,只是因为我不知道如何将事件从一个事件源移动到另一个事件源...
知道为什么 addEvent 似乎没有正确链接事件和资源吗?
以下是删除和添加一个资源及其事件的两个函数:
function FMP_RemoveResource(id){
var events = calendar.getResourceById(id).getEvents();
events.forEach( event => {
event.remove();
}
);
calendar.getResourceById(id).remove();
};
function FMP_AddEvent(strResource,strEvents){
var resource = JSON.parse(strResource),
events = JSON.parse(strEvents);
calendar.addResource( resource );
events.forEach( event => {
calendar.addEvent(event);
}
);
};
这是 strResource 和 strEvents 的示例:
资源
{
"eventColor" : "#FFA500",
"id" : "EFC9E5DC-408E-4B54-81D4-BA46CF42E0F5",
"title" : "Calendrier 2"
}
字符串事件
[
{
"end":"2020-08-19 16:00:00",
"extendedProps":
{
"timeBackgroundColor":""
},
"id":"CAD946CD-6491-4F5E-AC33-D668A8D54D02",
"resourceId":"EFC9E5DC-408E-4B54-81D4-BA46CF42E0F5",
"start":"2020-08-19 10:45:00",
"title":"Nouvel événement"
},
{
"end":"2020-08-20 13:45:00",
"extendedProps":
{
"timeBackgroundColor":""
},
"id":"9ABB7423-74B3-4A16-B098-CB04421386D8",
"resourceId":"EFC9E5DC-408E-4B54-81D4-BA46CF42E0F5",
"start":"2020-08-20 11:30:00",
"title":"Nouvel événement"
}
]