javascript - 使用 addEvent 添加的事件,不要采用其资源的颜色
问题描述
我正在使用 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"
}
]
解决方案
推荐阅读
- c# - 如何将 C++ 结构转换为 C# 等效结构?
- scala - 如何将一组值作为环境变量提供给 typesafe/lightbend 配置?
- azure - 如何将 .pfx 文件从 azure vm 导出到 azure 门户
- python - 使用 Python 进行 Linux 静态路由规则文件格式转换
- java - 无法将通用项目实例化为列表 Java
- amazon-web-services - 使用 circleCI 在 AWS 上部署 LAMP 应用
- validation - Vue.js VeeValidate 如何阻止提交数据,直到所有数据都有效
- c# - 重构具有多个具有相同签名的方法的类
- css - 在 HTML 中使用“table-hover”类和“rowspan”的引导表不会突出显示(悬停)甚至引用其主要类别的行
- xslt-2.0 - 从 XSL 中替换/删除字符