FullCalendar(1.6)难以使用renderEvent更新日历上的现有事件

FullCalendar(1.6)难以使用renderEvent更新日历上的现有事件,fullcalendar,Fullcalendar,我使用的是较旧版本的fullCalendar(1.6.4),大部分都很成功。我有一个用户界面,可以向日历中添加新事件,然后在线编辑它们。当我尝试用修改过的事件对象更新日历时,遇到了问题。我只是遇到了这个问题,但是对于动态添加的事件,我显然可以重新加载页面并更新fullCalendar最初添加的事件 问题似乎与event.source属性的工作方式密切相关。当事件的属性为null时,fullCalendar会将事件的新实例推送到“缓存”对象上,即使该事件在日历上已经存在。我不知道为什么,也不知道这

我使用的是较旧版本的fullCalendar(1.6.4),大部分都很成功。我有一个用户界面,可以向日历中添加新事件,然后在线编辑它们。当我尝试用修改过的事件对象更新日历时,遇到了问题。我只是遇到了这个问题,但是对于动态添加的事件,我显然可以重新加载页面并更新fullCalendar最初添加的事件

问题似乎与event.source属性的工作方式密切相关。当事件的属性为null时,fullCalendar会将事件的新实例推送到“缓存”对象上,即使该事件在日历上已经存在。我不知道为什么,也不知道这是怎么回事。不管出于什么原因,我最终在日历日得到了重复的事件实例

// code directly from fullCalendar 1.6.4
function renderEvent(event, stick) {
       console.log('renderEvent',event)
            normalizeEvent(event);
            if (!event.source) {
                    if (stick) {
                            stickySource.events.push(event);
                            event.source = stickySource;
                    }
                    cache.push(event);
    }
    reportEvents(cache);
}

因此,在纯编辑现有日历项的情况下,我确保设置了源值,并且不会在任何地方丢失/为空。即使在最坏的情况下,它也会执行以下操作并将其设置为空对象。(注意,这可能是我的问题的一个原因,我只是对完整的日历了解不够)。有时我甚至不得不强制它为{},否则它在源代码中有多个项目,更新后我又会得到重复的日历项

 calEvent.source = calEvent.source ? calEvent.source : {};
然后通过调用renderEvent更新现有日历

 $('#calendar').fullCalendar( 'renderEvent', calEvent, true);
不幸的是,我遇到了这样的情况:发送到renderEvent的新calEvent被更新,而它没有更新日历上的实例。这可能是因为源字段?而且它只发生在新动态添加的事件中


是否有人可以帮助您正确编辑事件?以及如何正确使用此源字段。

在更改事件数据后,您是否尝试过调用renderEvent?完全不知道这种明显更好的方法!加上它作为解决方案,我会给你信用。它帮助了很多,尽管有时我需要连续两次调用它才能使其生效。