#fullcalendar
#fullcalendar
Вопрос:
FullCalendar отлично работает, кроме 1 проблемы, с которой я столкнулся. Кажется, что в monthview div, который загружает календарь в режиме monthview, отображаются загруженные повторяющиеся праздники. Это происходит, когда я добавляю событие, а затем вызываю функцию привязки календаря, которая в основном выполняет приведенный ниже код.
У кого-нибудь еще была подобная проблема? Похоже, что функция ‘removeEvents’ работает нормально с потоком данных, который поступает из внутренней базы данных, но, похоже, оставляет даты Google. Когда вызывается addEventSource, он снова добавляет те же события.
var googleUkHolidaysFeed = {
url: 'http://www.google.com/calendar/feeds/uk__en@holiday.calendar.google.com/public/basic',
cache: true,
color: "green"
};
$.getJSON(url, {}, function (data) {
$('#dayview').fullCalendar('removeEvents');
$('#dayview').fullCalendar('addEventSource', data);
if ($("#monthview")[0]) {
$('#monthview').fullCalendar('removeEvents');
$('#monthview').fullCalendar('addEventSource', data);
$('#monthview').fullCalendar('addEventSource', googleUkHolidaysFeed);
}
});
Ответ №1:
Я сам решил эту проблему. Необходимо вызвать ‘removeEvents’, за которым следует ‘removeEventSource’, например:
(‘data’ — это массив событий в формате json, предоставляемый приложением, ‘googleCalendarUkHolidayFeed’ — это канал URL от Google).
var googleCalendarUkHolidayFeed = {
url: "http://www.google.com/calendar/feeds/bla..."
}
$('#dayview').fullCalendar('removeEvents');
$('#dayview').fullCalendar('addEventSource', data);
if ($("#monthview")[0]) {
// remove events and re-add event source to reflect search/non-search
$('#monthview').fullCalendar('removeEvents');
$('#monthview').fullCalendar('removeEventSource', googleCalendarUkHolidayFeed);
$('#monthview').fullCalendar('removeEventSource', data);
$('#monthview').fullCalendar('addEventSource', googleCalendarUkHolidayFeed);
$('#monthview').fullCalendar('addEventSource', data);
}