Javascript fullcalendar版本4:refetch事件不';t删除新添加的事件
我使用的是fullcalendar版本4,并且我添加了一个自定义按钮,用当前信息/事件“刷新”日历 这是我的按钮:Javascript fullcalendar版本4:refetch事件不';t删除新添加的事件,javascript,fullcalendar,fullcalendar-scheduler,fullcalendar-4,Javascript,Fullcalendar,Fullcalendar Scheduler,Fullcalendar 4,我使用的是fullcalendar版本4,并且我添加了一个自定义按钮,用当前信息/事件“刷新”日历 这是我的按钮: customButtons: { myReloadButton: { text: 'refresh', click: function() { calendar.refetchEvents(); calendar_mini.refetc
customButtons: {
myReloadButton: {
text: 'refresh',
click: function() {
calendar.refetchEvents();
calendar_mini.refetchEvents();
}
}
正如您所见,我有两个日历要刷新。它工作正常,但我注意到一个问题。当我创建一个新的事件时,它会被添加到日历中。但是,如果用户随后单击“刷新”按钮,则重新加载事件后,刚刚添加的事件将显示两次。似乎在刷新期间从未删除新添加的事件
我有一个模态表单,可以打开它来收集事件的信息。保存事件后,下面是我如何保存它(通过ajax调用)。在ajax的成功中,我使用.addEvent()将事件添加到我的日历中
为什么“刷新”按钮不删除新添加的事件?问题在于重新蚀刻事件只是从定义的源重新加载事件。它对未附加到源的独立事件没有任何影响 有两种方法可以解决这个问题 一种解决方案是替换
calendar.addEvent(事件对象)在AJAX“success”函数中,只需使用calendar.refetchEvents()代码>-然后它立即从服务器重新加载,其中将包括新添加的事件,而不是直接向日历添加单独的独立事件
另一个选项是在将事件添加到日历时将其附加到源。警察说
source
表示要关联此事件的事件源
具有它可以是字符串事件源ID或事件源对象。
重新蚀刻源时,将清除动态添加的源
事件从内部缓存中取出。此参数为
可选
因此,如果在声明事件源时为其提供了一个ID,则可以将其作为一个额外选项放置在此处,以将事件与源关联起来。大概是这样的:
calendar.addEvent(event_object, 1);
你试过这个吗?
calendar.addEvent(event_object, 1);