FullCalendar:在开始时传递 null

FullCalendar: Passing null in start

我在我的一个项目中使用完整日历。 json 事件包含许多条目,并且在少数条目中,开始日期为空。我希望这些事件在日历中不可见。但现在,这些事件在当前日期可见。有什么办法可以解决这个问题吗?

有两种方法。使用自定义 event source function or change them in eventDataTransform.

过滤掉它们

在这两者中,eventDataTransform 通常更容易,除非您已经在为事件源使用函数。

Garima 关于使用 eventRender 的建议行不通,因为 FC 在到达 eventRender 之前会抛出错误。

eventDataTransform 方法

eventDataTransform: function (eventData) {
    if (eventData.start == null) { //catches null or undef
        eventData.start = moment("1975","yyyy"); //some time that won't be used
        eventData.end = moment("1975","yyyy");
    }
    return eventData;
}

JSFiddle

如果这对你来说太老套了,可以做类似的事情:

eventDataTransform: function (eventData) {
    if (eventData.start == null) { //catches null or undef
        eventData.start = moment(); //set it to a valid time
        eventData.hidden = true; //flag it as invalid (this will be a custom property of the event)
    }
    return eventData;
}

然后在 event.hidden === true.

时使 eventRender 回调 return 为假

但这需要更多的工作,而且可能没有必要。