我正在使用fullcalendar,但我想从数组中设置事件,例如:
var countries = new Array();
countries[0] = {'title':'España', 'start':new Date(y, m, d+4, 19, 0), url:'http://google.com/'};
countries[1] = {'title':'Portugal', 'start':new Date(y, m, 22, 22, 0)};
这是一个静态的例子,我将得到这个数组,并且在每种情况下我都会有3或9或......不同的事件。
但是例子是:
$('#calendar').fullCalendar({
editable: false,
events: [
{
title: 'example',
start: new Date(y, m, d+1, 19, 0),
end: new Date(y, m, d+1, 22, 30),
allDay: false
},
{
title: 'Click for Google',
start: new Date(y, m, 28),
end: new Date(y, m, 29),
url: 'http://google.com/'
},
]
});
如何删除这两个示例事件并仅设置我的数组“countries”?
有可能吗? 提前谢谢。
答案 0 :(得分:8)
从日历中删除事件。
$("#calendar").fullCalendar( 'removeEvents' [, idOrFilter ] )
动态添加事件源。
$("#calendar").fullCalendar( 'addEventSource', source )
答案 1 :(得分:3)
如果您使用的是fullcalendar v4,则在Github issue中提到了很多API更改。
您将需要使用新的API从日历中获取所有事件对象,并对所有事件对象调用remove方法。
删除后,您需要使用calendar.addEvent(event)
添加所有事件。
我们不想在添加每个事件后重新渲染完整的日历,因此我们将其包装到一个批处理渲染中,这只会导致一个重新渲染。
newEvents
是要添加的事件的数组。
// batch every modification into one re-render
calendar.batchRendering(() => {
// remove all events
calendar.getEvents().forEach(event => event.remove());
// add your new events
newEvents.forEach(event => calendar.addEvent(event));
});
希望这对某人有所帮助:)
答案 2 :(得分:0)
calendar.batchRendering(() => {
// remove all events
calendar.getEvents().forEach(event => event.remove());
// add your new events source
calendar.addEventSource(events);
});