#fullcalendar #fullcalendar-4
#полный календарь #полный календарь-4
Вопрос:
Обработка ресурса изменилась в FullCalender 4.0.
В FullCalendar 3.x я изменил ресурс события, используя:
event.resourceId = newResourceId;
В FullCalendar 4.0 я не могу найти правильный способ…
Мой текущий код:
var calendar_event = calendar.getEventById(data.event.id)
if (calendar_event) {
calendar_event.setProp('title', data.event.title)
calendar_event.setProp('resourceIds', [data.event.resourceId])
}
setProp
кажется, это неправильный метод, поскольку впоследствии событие не отражает изменения в таблице, только заголовок был изменен на новый.
Параметр для getResources()
, например setResources()
, не существует.
Официальная документация по https://fullcalendar.io/docs/resource-data включает только выборку ресурса, а не программную установку нового для существующего события.
Руководство по миграции https://fullcalendar.io/docs/upgrading-from-v3 упоминаются только методы setProp
, setExtendedProp
setStart
, setEnd
setDates
setAllDay
moveStart
, moveEnd
moveDates
updateEvent
,,, , для замены,,,,,,,,,,,,,,,,,,,,,,, — ресурсы отсутствуют.
Мой текущий обходной путь — удалить и добавить событие снова:
calendar.getEventById(data.event.id).remove()
calendar.addEvent(data.event)
Как переместить событие на другой ресурс без повторной загрузки и инициализации всего события?
Комментарии:
1. Вы нашли решение для этого? Вы правы в том, что setProp не работает, при просмотре исходного кода setProp проверяет константу с именем NON_DATE_PROPS, и идентификаторов ресурсов в ней нет. Я еще не перенес, но с этой проблемой я столкнусь. Настройки: github.com/fullcalendar/fullcalendar/blob/master/src/core/api / … NON_DATE_PROPS: github.com/fullcalendar/fullcalendar/blob/master/src/core /…
2. @AllyMurray Пока нет. В настоящее время я использую обходной путь, упомянутый выше. Я только что зарегистрировал проблему в fullcalendar-scheduler ( github.com/fullcalendar/fullcalendar-scheduler/issues/514 ).
3. Теперь это возможно с помощью Event::setResources в версии 4.0.2
Ответ №1:
В версии 4.0.2 было добавлено редактирование ресурсов события.
В документации описывается использование следующим образом:
По идентификатору:
var event = calendar.getEventById('1');
event.setResources([ 'a' ]); // set a single resource
event.setResources([ 'a', 'b' ]); // set multiple
По ресурсу:
var resourceA = calendar.getResourceById('a');
var resourceB = calendar.getResourceById('b');
var event = calendar.getEventById('1');
event.setResources([ resourceA, resourceB ]);