1

我正在从数据库中获取数据以填充 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
        }
]

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

events: [               
            allevents
        ]

问题

是否可以像上面那样将事件组合成一个对象或变量?如果是,如何?如果不是,我会对将动态事件数据输入全日历的替代方法感兴趣。谢谢 :)

我试过的

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

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

4

3 回答 3

0

我使用数组连接来解决我的问题。

//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]]);
            }           
        }
于 2013-09-02T13:57:51.797 回答
0

我想这就是你要找的。

不要使用“事件”属性,而是使用“事件源”属性。

前:

events : eventArrayFirst

后:

eventSources: [
    eventArrayFirst,
    eventArraySecond
]
于 2019-07-12T09:57:23.370 回答
-1

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

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 } ];

那么这个例子可以帮助你

于 2013-09-02T07:09:51.607 回答