Как я могу динамически установить параметры 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: см. ниже


здесь есть открытая проблема для этой функции:

https://code.google.com/p/fullcalendar/issues/detail?id=293


таким образом, вы можете изменить, как много вариантов календаря, как:

// 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);