2017-10-21 178 views
1

我正在使用updateEvent方法在周视图中即时更新事件。Fullcalendar 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 

所以,显然我正确设置日期和时间。我不知道为什么它不起作用。任何建议?

回答

0

我解决了这个问题。

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

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

从文档中,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);