删除 fullCalendar 中的所有事件源
Removing all the eventSources in fullCalendar
我的全日历中有两种类型的事件。使用以下方法从 eventSources 中获取的很少:
$('calendar').fullCalendar('addEventSource' , 'source')
而且很少是用户创建的。我正在使用
$('calendar').fullCalendar('renderEvent', eventData, true)
现在单击按钮后,我想删除从 eventSources 获取的所有事件并保留用户创建的事件。
我试过:
$('calendar').fullCalendar('removeEventSource' , function(e){ return true ; } ) ;
但这不起作用。我如何完成这项工作?
我在最近的项目中做了你想做的事情。
Fullcalendar 支持非标准字段。
Non-standard Fields
In addition to the fields above, you may also include your own
non-standard fields in each Event Object. FullCalendar will not modify
or delete these fields. For example, developers often include a
description field for use in callbacks such as eventRender.
所以你可以做类似的事情
//Save user created event
$('#calendar').fullCalendar('renderEvent', {
title: title,
end: end,
start: start,
editable : true,
//nonstandard field
isUserCreated: true,
description: description,
});
然后删除用户未创建的事件
//Get all client events
var allEvents = $('#calendar').fullCalendar('clientEvents');
var userEventIds= [];
//Find ever non usercreated event and push the id to an array
$.each(allEvents,function(index, value){
if(value.isUserCreated !== true){
userEventIds.push(value._id);
}
});
//Remove events with ids of non usercreated events
$('#calendar').fullCalendar( 'removeEvents', userEventIds);
或者,如果您需要较少的控制,那么只需(如@A1rPun 所建议的那样)
$('#calendar').fullCalendar( 'removeEvents', function(e){ return !e.isUserCreated});
您只需拨打:
$('#calendar').fullCalendar('removeEventSources');
他们添加了删除事件源和事件日历中的事件的方法,只要您使用的是 2.8.0。
要从整个日历中删除所有事件源或所有事件,请执行以下操作:
$('#calendar').fullCalendar( 'removeEventSources', optionalSourcesArray)
如果未定义 optionalSourcesArray,它只会删除所有事件源。在我的例子中,我需要删除事件源,所以我调用了:
$('#calendar').fullCalendar( ‘removeEvents’, idOrFilter )
在此处查看两种方法调用的文档:
https://fullcalendar.io/docs/removeEventSources
https://fullcalendar.io/docs/removeEvents
您可以在此处阅读有关原始 removeEventSources 拉取请求及其实际实施方式的更多信息:
我的全日历中有两种类型的事件。使用以下方法从 eventSources 中获取的很少:
$('calendar').fullCalendar('addEventSource' , 'source')
而且很少是用户创建的。我正在使用
$('calendar').fullCalendar('renderEvent', eventData, true)
现在单击按钮后,我想删除从 eventSources 获取的所有事件并保留用户创建的事件。
我试过:
$('calendar').fullCalendar('removeEventSource' , function(e){ return true ; } ) ;
但这不起作用。我如何完成这项工作?
我在最近的项目中做了你想做的事情。 Fullcalendar 支持非标准字段。
Non-standard Fields
In addition to the fields above, you may also include your own non-standard fields in each Event Object. FullCalendar will not modify or delete these fields. For example, developers often include a description field for use in callbacks such as eventRender.
所以你可以做类似的事情
//Save user created event
$('#calendar').fullCalendar('renderEvent', {
title: title,
end: end,
start: start,
editable : true,
//nonstandard field
isUserCreated: true,
description: description,
});
然后删除用户未创建的事件
//Get all client events
var allEvents = $('#calendar').fullCalendar('clientEvents');
var userEventIds= [];
//Find ever non usercreated event and push the id to an array
$.each(allEvents,function(index, value){
if(value.isUserCreated !== true){
userEventIds.push(value._id);
}
});
//Remove events with ids of non usercreated events
$('#calendar').fullCalendar( 'removeEvents', userEventIds);
或者,如果您需要较少的控制,那么只需(如@A1rPun 所建议的那样)
$('#calendar').fullCalendar( 'removeEvents', function(e){ return !e.isUserCreated});
您只需拨打:
$('#calendar').fullCalendar('removeEventSources');
他们添加了删除事件源和事件日历中的事件的方法,只要您使用的是 2.8.0。
要从整个日历中删除所有事件源或所有事件,请执行以下操作:
$('#calendar').fullCalendar( 'removeEventSources', optionalSourcesArray)
如果未定义 optionalSourcesArray,它只会删除所有事件源。在我的例子中,我需要删除事件源,所以我调用了:
$('#calendar').fullCalendar( ‘removeEvents’, idOrFilter )
在此处查看两种方法调用的文档:
https://fullcalendar.io/docs/removeEventSources https://fullcalendar.io/docs/removeEvents
您可以在此处阅读有关原始 removeEventSources 拉取请求及其实际实施方式的更多信息: