2015-05-27 2 views
0

Хотелось бы узнать, можно ли начать полнотекстовые интервалы FullCalendar в другое время 00:00? У меня есть приложение, в котором пользователь может выбрать длительность слота FullCalendar (15 минут, 30 минут или то, что пользователь хочет). Пользователь может также определить диапазон времени, доступный для выполнения некоторых обязательств. Проблема заключается в том, что игровые площадки agendada начинаются в 00:00. Предположим, что пользователь зарегистрирует диапазон доступных времени для обязательств, который начинается в 10:00 часов. В зависимости от продолжительности слотов, которые пользователь выбирает для 10:00 часов, может не отображаться. Существует способ инициировать слоты FullCalendar в 10:00 или в другое время, согласно моим потребностям?Как инициировать JQuery FullCalendar с определенным временным интервалом в представлении повестки дня?

+0

В v1 у нас была конфигурация 'firstHour' .. Похоже, что она изменилась в версии v2. – A1rPun

+0

Я нашел часть решения: мне нужно установить свойство minTime. Возникает вопрос: как установить это свойство после рендеринга календаря? Когда пользователь меняет день, я хотел бы изменить свойство minTime в соответствии с диапазонами времени, которые пользователь зарегистрировал. – LeoPinheiroDeSouza

ответ

0

Чтобы изменить параметры, когда календарь уже отображен, необходимо сначала уничтожить календарь, изменить параметр, а затем снова создать календарь. Вы можете сделать это следующим образом:

//This is (a mockup of) the creation of the calendar 
var conf = { slotMinutes: 30 }; 
$('#calendar').fullCalendar(conf); 

//When you need to dynamically change one or more options 
$('#calendar').fullCalendar('destroy') 
conf.scrollTime = '10:00:00'; 
$('#calendar').fullCalendar(conf); 
+0

Я использую это в функции dayRender: $ ('# calendar'). FullCalendar ('getView'). Calendar.options.minTime = '10: 00: 00 '; //$('#calendar').fullCalendar('render '); , Если я раскомментирую //$('#calendar').fullCalendar('render '), страница имеет ошибку. Он не работает ... – LeoPinheiroDeSouza

+0

@LeoPinheiroDeSouza Я обновил свой ответ – A1rPun

+0

Мне нужно, чтобы изменения работали, когда пользователь меняет день. Итак, я написал вашу строку кода в функции dayRender. Однако, когда я использую такие методы, как $ ('# calendar'), fullCalendar ('destroy') или $ ('# calendar'). FullCalendar ('render') внутри функции dayRender, страница становится пустым, ошибка, я полагаю. Есть ли другой способ обновить свойства календаря, когда пользователь меняет день? – LeoPinheiroDeSouza

0

Вы можете сделать это, используя календарь как функцию.

function renderCalendar(min, max, slot) { 

    $('#calendar').fullCalendar('destroy'); // this is used to refresh (destroy and recreate) 
    var mintime = (min == "") ? '00:00:00' : min; // set user selected time else default time 
    var maxtime = (max === "") ? '24:00:00' : max; // set user selected time else default time 
    var slotToDisplay = (slot === undefined) ? '00:10:00' : slot;  // if slot is undefined then use default slot timing   

      $('#calendar').fullCalendar({ 

       header: { 
        left: 'prev,next today', 
        center: 'title', 
        right: 'month,basicWeek,basicDay' 
       }, 
       windowResize: true, 
       allDaySlot: true, 
       slotDuration: slotToDisplay, 
       minTime: mintime, 
       maxTime: maxtime, 
       buttonIcons: false, 
       editable: true, 
       ... 
      }); 
} 

Затем, когда пользователь выбирает временной интервал. вы передаете его в календарь таким образом.

renderCalendar(10:30:00, 18:30:00, 00:10:00); // you can pass time based on user selects the time. 
Смежные вопросы