从数组中设置fullcalendar中的事件

use*_*420 4 javascript php arrays fullcalendar dom-events

我正在使用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)};
Run Code Online (Sandbox Code Playgroud)

这是一个静态的例子,我将得到这个数组,在每种情况下我都有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/'
        },         
    ]
});
Run Code Online (Sandbox Code Playgroud)

如何删除这两个示例事件并仅设置我的数组"国家/地区"?

可能吗?提前致谢.

Kah*_*osk 8

从日历中删除事件.

$("#calendar").fullCalendar( 'removeEvents' [, idOrFilter ] )
Run Code Online (Sandbox Code Playgroud)

动态添加事件源.

$("#calendar").fullCalendar( 'addEventSource', source )
Run Code Online (Sandbox Code Playgroud)

从这里:https: //fullcalendar.io/docs/addEventSource


MKr*_*rup 5

如果您使用 fullcalendar v4,则 Github问题中提到了大量 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));
});
Run Code Online (Sandbox Code Playgroud)

希望这对某人有所帮助:)