我正在从数据库中获取数据,以便在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
}
];
那么这个例子可能会帮助您