如何将多个事件数据组合为一个适合与fullcalendar一起使用的对象或变量



我正在从数据库中获取数据,以便在fullcalendar.js中填充事件我在启动$('#calendar').fullCalendar({}) 之前获得此信息

如果我知道我将有多少活动,我可以用下面的代码创建日历

events: [               
            eventz[0],
            eventz[1]
        ]

其中eventz包含类似的信息

eventz[eventcounter]={  
                    className: title[counter],
                    title: title[counter],
                    start: new Date(y, m, weekday, result[hour1], result[minute1]),
                    end: new Date(y, m, weekday, result[hour2], result[minute2]),
                    allDay: false
                                };

编辑:更多信息事件通常包含如下所写的信息

events:[
        {//event1
        title: 'TENTATIVE',
        start: new Date(y, m, monday, 0, 30),
        end: new Date(y, m, monday, 1, 0),
        allDay: false
        },
        {//event2
        title: 'TENTATIVE',
        start: new Date(y, m, monday, 0, 30),
        end: new Date(y, m, monday, 1, 0),
        allDay: false
        }
]

不幸的是,我不知道我会参加多少活动。我认为在启动日历之前,我可以将事件组合成一个对象或变量(类似于下面的代码,其中allevents={eventz[0]},{eventz[1]})。

events: [               
            allevents
        ]

问题

是否可以像上面那样将事件组合成一个对象或变量?如果是,如何?如果没有,我会对在fullcalendar中输入动态事件数据的其他方法感兴趣。谢谢:)

我尝试了什么

//combine all events into one
        for (var i=0;i<=counter;i++)
        {
            allevents+=eventz[i];
            if (i!=counter)
            {
                allevents+=',';
            }
        }

我试过很多事情,但这感觉我在做荒谬的事情,这似乎是一个简单的问题(对我以外的人来说)。

我想这就是您想要的。

不要使用"events"属性,而是使用"eventSources"属性。

之前:

events : eventArrayFirst

之后:

eventSources: [
    eventArrayFirst,
    eventArraySecond
]

我使用数组串联来解决问题。

//Combines all events into one
        if (eventcounter>0) //Check that there is an event!
        {
            var allevents=[eventz[0]]; 
            for (var varname=1; varname<=eventcounter; varname++)
            {               
                allevents=allevents.concat([eventz[varname]]);
            }           
        }

如果在单个数组中组合所有事件后的最终数组看起来像

var eventz = [ {//event1 title: 'TENTATIVE', start: new Date(y, m, monday, 0, 30), end: new Date(y, m, monday, 1, 0), allDay: false }, {//event2 title: 'TENTATIVE', start: new Date(y, m, monday, 0, 30), end: new Date(y, m, monday, 1, 0), allDay: false } ];

那么这个例子可能会帮助您

最新更新