Источник события FullCalendar - PullRequest
       12

Источник события FullCalendar

3 голосов
/ 20 февраля 2012

Я хочу создать функцию для генерации моих событий.

В документации fullCalendar я нашел кое-что:

{
    events: function(start, end, callback) {
        // ...
    },
    color: 'yellow',   // an option!
    textColor: 'black' // an option!
}

{
    events: function() {
        // ...
        for (var k=0; k<myarray.length; k++)
        {
            title: myarray[0][0],
            start: myarray[0][1]
        }
    },
    color: 'yellow',   // an option!
    textColor: 'black' // an option!
}

Кто это означает начало, конец и обратный вызов?

Я хочу запустить функцию при загрузке календаря ...

Я хочу сделать что-то вроде второго примера ... Как я могу это сделать?

Большое спасибо

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Как объяснено в документации , свойство events, указанное как функция, будет вызываться fullCalendar всякий раз, когда ему нужны новые данные события.Он будет проходить через 2 даты, которые представляют даты начала и окончания текущего просматриваемого отрезка времени в календаре.Третьим заданным параметром является обратный вызов, который должна вызывать ваша пользовательская функция, когда она создала данные для заданного периода времени, и вы передаете ему сгенерированные данные события.

Когда календарь загружается впервые, ему нужны данныедля любого вида, который он отображает в данный момент.Например, если текущая дата отображается в виде месяца, start будет первым днем ​​текущего месяца, а end будет последним днем ​​текущего месяца.Ваша функция должна создать массив данных события (отформатированный, как указано в документации ) для этого диапазона времени и передать его в функцию обратного вызова, которая была задана как параметр 3.

ЕслиКалендарь в настоящее время отображается в месяце и отображает октябрь 2010 года, и пользователь нажимает правую кнопку, сообщая календарю о необходимости перехода к следующему месяцу. Ваша функция будет вызываться с начальным параметром 1 ноября 2010 года и конечным параметром 30 ноября 2010 года.Вы бы сгенерировали данные о событиях за этот период времени и передали их в параметр обратного вызова.

На основании приведенного вами примера (который имеет крайние проблемы с синтаксисом JS), я бы сказал, что вы не хотите использоватьevents как функция.Скорее, ваш код должен создать правильно отформатированный массив данных событий перед вызовом .fullCalendar() и передать этот массив как свойство events.Пример:

/* Assuming you have an array, myArray, which holds data about
 * your events, but is not in the format axpected by fullCalendar
 */

var formattedEventData = [],
    k;

for (var k = 0; k < myArray.length; k += 1) {
    formattedEventData.push({
        title: myarray[k][0],
        start: myarray[k][1]
    });
}

$('#targetElement').fullCalendar({
    events: formattedEventData,
    color: 'yellow',
    textColor: 'black'
});
0 голосов
/ 19 марта 2015

Я сделал то же самое, что сказал JAAulde, но с моделью в asp.net, и она работает хорошо. Вот код, если он кому-нибудь понадобится:

$(document).ready(function () {
    var formattedEventData = [];

    @foreach (var item in Model){
            <text>
            formattedEventData.push({
            title: '@(item.name)',
            description: '@(item.description)',
            start:'@(item.startTimeHTML)',
            end: '@(item.endTimeHTML)',
            description: '@(item.description)'
            });
            </text>
        }

    var calendar = $('#calendar').fullCalendar({            
        events: formattedEventData
        });
});
...