Как я могу динамически установить параметры Fullcalendar
как я могу установить minTime
и maxTime
параметры после создания календаря?
я попробовал следующее, что не работает:
$('#calendar').fullCalendar('option', 'minTime', 7);
$('#calendar').fullCalendar('render');
7 ответов
Я не знаю, по-прежнему ли это актуально, но я могу изменить параметры со следующим утверждением:
пример по выбору:
$('#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/
не может быть сделано без воссоздания календаря.
обновление: Можно сделать в v 2.9: см. ниже
таким образом, вы можете изменить, как много вариантов календаря, как:
// 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);