Ответ 1
Невозможно сделать это без повторного создания календаря.
Update: Можно сделать в версии 2.9: ниже
Как настроить параметры minTime
и maxTime
после создания календаря?
Я пробовал следующее, что не работает:
$('#calendar').fullCalendar('option', 'minTime', 7);
$('#calendar').fullCalendar('render');
Невозможно сделать это без повторного создания календаря.
Update: Можно сделать в версии 2.9: ниже
Я не знаю, насколько это актуально, но я могу изменить параметры со следующим утверждением:
пример для выбора:
$('#calendar').fullCalendar('getView').calendar.options.selectable = false;
$('#calendar').fullCalendar('render'); // rerender to see visual changes
Хотя это не динамически, но по крайней мере вам не нужно уничтожать весь календарь и обновлять ваши события: -)
Эта функциональность официально выпущена в версии v2.9.0: http://fullcalendar.io/docs/utilities/dynamic_options/
Здесь есть открытая проблема для этой функции:
Таким образом вы можете изменить как можно больше параметров календаря:
// save the calendar options in a variable
var calendarOptions = $('#calendar')
.fullCalendar('getView')
.options;
// make your changes to the calendar options
// I wanted to change the slotDuration
calendarOptions.slotDuration = '00:20:00';
// destroy the calendar
$('#calendar')
.fullCalendar('destroy');
//Lets load the calendar with the new options
$('#calendar')
.fullCalendar(calendarOptions);
Надеюсь, это поможет. Спасибо.
Только я, чувак, на самом деле единственный способ найти себя.
Это просто добавление к этому прежнему ответу: Если вы хотите изменить редактируемый параметр, что очень полезно, если вы хотите заблокировать события для запроса подтверждения при изменении перед обновлением базы данных, это немного сложнее. В случае, если это может сэкономить некоторое время кому-то, я сбрасываю код:
var view = $('#calendar').fullCalendar('getView');
view.calendar.options.editable = false;
view.calendar.overrides.editable = false;
view.calendar.viewSpecCache.month.options.editable = false;
view.calendar.viewSpecCache.agendaWeek.options.editable = false;
view.calendar.viewSpecCache.agendaDay.options.editable = false;
$('#calendar').fullCalendar('render');
Вы, очевидно, меняете все эти false на true, чтобы разблокировать.
Этот код мне очень понравился. Вызвать эту функцию в любом месте и передать в нее столько пользовательских переменных, но не забывайте сначала уничтожить предыдущий календарь
function initializeCalendar( timeIntervalCustom ) {
$('#calendar'+id).fullCalendar({
slotMinutes: timeIntervalCustom,
});
}
$('#calendar').fullCalendar("destroy");
initializeCalendar(10);