Fullcalendar 4 如何查看事件是否从 rrule 重复发生
Fullcalendar 4 how to see if event is recurring from rrule
我正在使用全日历版本 4 来 insert/update 重复发生的事件。我已通过将 rrule 插入我的数据库,然后使用 fullcalendar 的 rrule 插件来显示它,成功地创建了重复发生的事件。
当事件加载时,它们看起来像这样 JSON:
[{
allDay: false
color: "#2A2A2A"
date_created: "2019-05-17 12:09:46"
duration: "00:45:00"
end: ""
id: "23639"
resourceId: "1"
rrule: "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1"
start: ""
textColor: "#FFFFFF"
title: "BLOCK"
},
{
allDay: false
color: "#2A2A2A"
date_created: "2019-05-17 12:09:46"
duration: null
end: "2019-05-15 11:45:00"
id: "23639"
resourceId: "1"
rrule: null
start: "2019-05-15 11:00:00"
textColor: "#FFFFFF"
title: "BLOCK2"
},
]
如果存在规则,重复发生的事件会正确显示。
我现在正在研究 update/view 重复发生的事件。例如,我需要捕捉事件 moved/resized 开始时重复出现的事件。
事件对象没有要检查的规则属性。我在尝试这个:
eventClick: function(info) {
if (info.event.rrule) {
alert('this is a recurring event!');
}
}
... 但是,当单击重复事件时,示例警报不会显示。事件属性没有规则(并且它们不在 info.event.extendedProps 中)。
如何捕获重复发生的事件以便我可以操纵它们?
我的下一步是捕获 RRULE 并将其转换为文本,以便用户可以阅读重复事件的设置方式。所以我对如何检索它有点难过。
单击信息后 console.log,我可以看到重复发生的事件的属性。 RRULE 不存在。它也不在 extendedProps 对象中。
allDay: (...)
allow: (...)
backgroundColor: (...)
borderColor: (...)
classNames: (...)
constraint: (...)
durationEditable: (...)
end: (...)
extendedProps: (...)
groupId: (...)
id: (...)
overlap: (...)
rendering: (...)
source: (...)
start: (...)
startEditable: (...)
textColor: (...)
title: (...)
url: (...)
您可以通过info.event._def.recurringDef
获取规则对象
此对象具有属性 duration
、typeData
和 typeId
typeData
属性 包含实际的 RRule 对象
我正在使用全日历版本 4 来 insert/update 重复发生的事件。我已通过将 rrule 插入我的数据库,然后使用 fullcalendar 的 rrule 插件来显示它,成功地创建了重复发生的事件。
当事件加载时,它们看起来像这样 JSON:
[{
allDay: false
color: "#2A2A2A"
date_created: "2019-05-17 12:09:46"
duration: "00:45:00"
end: ""
id: "23639"
resourceId: "1"
rrule: "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1"
start: ""
textColor: "#FFFFFF"
title: "BLOCK"
},
{
allDay: false
color: "#2A2A2A"
date_created: "2019-05-17 12:09:46"
duration: null
end: "2019-05-15 11:45:00"
id: "23639"
resourceId: "1"
rrule: null
start: "2019-05-15 11:00:00"
textColor: "#FFFFFF"
title: "BLOCK2"
},
]
如果存在规则,重复发生的事件会正确显示。
我现在正在研究 update/view 重复发生的事件。例如,我需要捕捉事件 moved/resized 开始时重复出现的事件。
事件对象没有要检查的规则属性。我在尝试这个:
eventClick: function(info) {
if (info.event.rrule) {
alert('this is a recurring event!');
}
}
... 但是,当单击重复事件时,示例警报不会显示。事件属性没有规则(并且它们不在 info.event.extendedProps 中)。
如何捕获重复发生的事件以便我可以操纵它们?
我的下一步是捕获 RRULE 并将其转换为文本,以便用户可以阅读重复事件的设置方式。所以我对如何检索它有点难过。
单击信息后 console.log,我可以看到重复发生的事件的属性。 RRULE 不存在。它也不在 extendedProps 对象中。
allDay: (...)
allow: (...)
backgroundColor: (...)
borderColor: (...)
classNames: (...)
constraint: (...)
durationEditable: (...)
end: (...)
extendedProps: (...)
groupId: (...)
id: (...)
overlap: (...)
rendering: (...)
source: (...)
start: (...)
startEditable: (...)
textColor: (...)
title: (...)
url: (...)
您可以通过info.event._def.recurringDef
获取规则对象
此对象具有属性 duration
、typeData
和 typeId
typeData
属性 包含实际的 RRule 对象