Повторное получение событий при переключении представлений полного календаря - PullRequest
3 голосов
/ 10 марта 2010

Я использую в своем календаре 3 представления: месяц, повестка дня недели и повестка дня. После добавления события я вызываю refetchEvents для отображения нового события. Если я добавлю событие из повестки дня или повестки дня, то при повторном получении события будут разобраны за неделю или день. Если я затем переключусь на просмотр месяца, у меня будут только события недели или дня.

Я пытался добавить refetchEvents на viewDisplay. Проблема в том, что он запускается при начальной загрузке, что вызывает дублирование всех событий. Есть ли способ остановить вызов refetchEvents во время загрузки календаря?

Есть ли другой способ принудительно выполнить повторную проверку при переключении видов?

Ответы [ 3 ]

13 голосов
/ 05 мая 2011

При создании fullcalendar есть метод viewDisplay, который запускается при каждом изменении представления. Логически вы можете использовать это как событие viewChanged. Например:

$('#calendar').fullCalendar({
    ... 
    viewDisplay: function(view) { alert('viewDisplay(' + view + ')'); }
});

Похоже, что с версии 1.6.3 правильный обратный вызов для использования viewRender

$('#calendar').fullCalendar({
    ...
    viewRender: function(view, element) { alert('new view: ' + view.name); }
});
6 голосов
/ 10 марта 2010

Звучит как хорошая идея для улучшения самой библиотеки fullcalendar - библиотека может предоставить функцию обратного вызова для события "viewChanged" или даже "viewChanging". Такая вещь действительно отсутствует, потому что, если вам нужно создать «глубокую связь AJAX», вам также нужно знать, когда изменилось представление.

Обновление: что произойдет, если вы измените опцию "lazyFetching" http://arshaw.com/fullcalendar/docs/event_data/lazyFetching/ вашего календаря после добавления события?

0 голосов
/ 19 января 2016

Не идеальная идея, а просто добавление еще одной альтернативы ...

$('.fc-month-button').click(function () {

});

$('.fc-agendaWeek-button').click(function () {

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...