Fullcalendar 4如何查看事件是否从规则中重复发生

时间:2019-05-17 18:43:30

标签: fullcalendar fullcalendar-scheduler fullcalendar-4

我正在使用全日历版本4插入/更新重复事件。通过在数据库中插入一个rrule,然后使用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"
 }, 
 ]

如果存在规则,则重复发生的事件将正确显示。

我现在正在研究一种更新/查看重复事件的方法。例如,我需要捕捉事件,这些事件在移动/调整大小以开始时会重复发生。

事件对象没有要检查的rrule属性。我正在尝试:

 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: (...)

1 个答案:

答案 0 :(得分:0)

您可以通过@Html.DropDownListFor(model => Tlitem.JobType, (SelectList)newSelectList, new { @class = "form-control js-select js-noFilter hidden", size = "2", @value = 0, Id = "JobType" + t ,@onchange="alert('hello');"}); 来获得rrule对象 该对象具有属性info.event._def.recurringDefdurationtypeData typeId属性保存实际的RRule对象