Fullcalendar return 事件在 eventClick 中具有空结束值,如果事件有 rrule
Fullcalendar return event with null end value in eventClick if event have rrule
https://codepen.io/SashaPl/pen/MWboodq?editors=0010
如果我有带有 rrule 的事件,那么在 eventClick 中它不会有结束值,但会有正确的开始值。
对于此类活动,结束日期为 2021 年 2 月 4 日星期四 00:00:00
{
title: "simple event",
start: "2021-02-02",
end: "2021-02-04"
},
但像这样它将为空
{
title: "event with rrule",
start: "2021-02-03T12:30:00",
end: "2021-02-03T13:30:00",
rrule: "FREQ=Weekly;WKST=SU;UNTIL=20210804T000000Z;INTERVAL=1;BYDAY=WE"
}
我修复了在从后端映射事件时将 eventLengthTimeStamp 添加到 eventLengthTimeStamp 的问题
const eventLengthTimeStamp = end.getTime() - start.getTime();
偶数时
eventClick: (event) => {
const popover = this._popoversMap.get(event.el);
if (popover) {
//this property is used because event with rrule have no end. end is null
const diffTimeStamp = event.event.extendedProps.eventLengthTimeStamp;
const end = new Date(event.event.start.getTime() + diffTimeStamp);
const calendarEvent: EventApi = JSON.parse(JSON.stringify(event.event));
calendarEvent.extendedProps.end = end;
popover.instance.popover.open({ event: calendarEvent });
}
},
这对我来说很好
根据问题https://github.com/fullcalendar/fullcalendar/issues/6172
您应该为事件设置 duration
属性 并在 eventClick
中使用获取 event.end
值的规则
https://codepen.io/SashaPl/pen/MWboodq?editors=0010
如果我有带有 rrule 的事件,那么在 eventClick 中它不会有结束值,但会有正确的开始值。
对于此类活动,结束日期为 2021 年 2 月 4 日星期四 00:00:00
{
title: "simple event",
start: "2021-02-02",
end: "2021-02-04"
},
但像这样它将为空
{
title: "event with rrule",
start: "2021-02-03T12:30:00",
end: "2021-02-03T13:30:00",
rrule: "FREQ=Weekly;WKST=SU;UNTIL=20210804T000000Z;INTERVAL=1;BYDAY=WE"
}
我修复了在从后端映射事件时将 eventLengthTimeStamp 添加到 eventLengthTimeStamp 的问题
const eventLengthTimeStamp = end.getTime() - start.getTime();
偶数时
eventClick: (event) => {
const popover = this._popoversMap.get(event.el);
if (popover) {
//this property is used because event with rrule have no end. end is null
const diffTimeStamp = event.event.extendedProps.eventLengthTimeStamp;
const end = new Date(event.event.start.getTime() + diffTimeStamp);
const calendarEvent: EventApi = JSON.parse(JSON.stringify(event.event));
calendarEvent.extendedProps.end = end;
popover.instance.popover.open({ event: calendarEvent });
}
},
这对我来说很好
根据问题https://github.com/fullcalendar/fullcalendar/issues/6172
您应该为事件设置 duration
属性 并在 eventClick
event.end
值的规则