Fullcalendar updateEvent无法正确呈现事件

时间:2017-10-21 10:20:00

标签: javascript fullcalendar momentjs

我正在使用updateEvent方法在周视图中动态更新事件。

$('#calendar').fullCalendar( 'updateEvent', event);

它正常工作如果我正在更新事件的日期(它在allDay插槽中移动正常)。但是如果我正在改变现有事件的开始/结束时间,我在updateEvent之后看不到事件(这意味着更新的事件消失了)

我在控制台中看到了事件对象

start: Object, end: null, // For the old event. Object is moment, converted by fullcalendar
start: '2017-02-14T07:00:00', end: '2017-02-14T08:00:00' // Updated date and time

所以,显然我正确地设定了日期和时间。我不知道它为什么不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

我尝试使用removeEvents删除旧事件,并通过调用renderEvents创建了一个新事件。仍然是同一个问题。

然后我尝试从事件对象中删除所有以_开头的属性,当我从source中删除fullcalendar's对象时,它就起作用了。

  

从文档中,source会自动填充,并且是对此事件来自的事件源的引用。

很明显,当我们更新事件时,我们必须删除事件的source属性,否则它仍可能引用旧事件。

这是我的代码。

$('.calendar').fullCalendar('removeEvents', oldEvent._id);
delete oldEvent._id;
delete oldEvent._allDay;
delete oldEvent._start;
delete oldEvent._end;
delete oldEvent.source;
$('.calendar').fullCalendar('renderEvent', oldEvent, true);