Javascript 从阵列中设置fullcalendar中的事件

Javascript 从阵列中设置fullcalendar中的事件,javascript,php,arrays,fullcalendar,dom-events,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)}; 这是一个静态的例子,我会得到这个数

我正在使用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”


可能吗?

从日历中删除事件

$("#calendar").fullCalendar( 'removeEvents' [, idOrFilter ] )
动态添加事件源

$("#calendar").fullCalendar( 'addEventSource', source )
从这里开始:

如果您使用的是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));
});

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

你好,kahosk,我已经在使用addEventSource,但它没有添加到我的日历中。你能帮我实现一些示例吗?我有一个javascript对象{id:'1',resourceId:'234001',开始:'2017-05-07T02:00:00',结束:'2017-05-07T07:00:00',标题:'event 1'}您能否对此进行扩展以给出“source”变量的示例?@jroyce根据@Kahosk链接的页面上的文档,“source可能是一个数组/URL/函数,就像在events选项中一样”。因此,例如,如果事件源中的事件存储在一个数组中,
Source
参数的值将是数组,如此处事件所述:虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
  calendar.batchRendering(() => {
    // remove all events
    calendar.getEvents().forEach(event => event.remove());
    // add your new events source
    calendar.addEventSource(events);
  });