jQuery Fullcalendar - для каждого события изменить редактируемое событие на не редактируемое (или наоборот) - PullRequest
0 голосов
/ 11 марта 2019

Я играл с официальным Fullcalendar CodePen

и не могу найти способ сделать событие недоступным для редактирования (или редактирования).

В демоверсии, глобальная опция установлена: editable: true.Если я пытаюсь изменить этот параметр для каждого события с помощью:

  eventRender: function(event, element){
    event.editable=false;
    }

, ничего не изменится.События все еще доступны для редактирования (изменяемый размер, перетаскиваемый, ..).Я нашел этот пост jquery-fullcalendar-change-editable-properties-of-special-event-on-a-calendar

, где это предложение:

editable: false,
eventRender: function(event, element) {
    if(event.userId === user.id) {
        event.editable = true;
    }
}

но это не работаетИзменение event.editable в eventRender или eventAfterRender не дает никакого эффекта.Можно ли изменить этот параметр динамически (для каждого события)?

1 Ответ

2 голосов
/ 12 марта 2019

Вы можете использовать функцию eventDataTransform , чтобы проверить, имеет ли ваше событие желаемый идентификатор пользователя, а затем изменить свойство editable на true.

$('#calendar').fullCalendar({
  header: {
  left: 'prev,next today',
  center: 'title',
  right: 'month,agendaWeek,agendaDay'
},
  events: 'https://fullcalendar.io/demo-events.json?overload-day',
  eventDataTransform: function(event){
  if(event.userId === user.id){
  event.editable=true;
  }
 return event;
}
});

});

Редактировать: Я думаю, что функция eventRender предназначена для изменения элемента. Для изменения события вы должны использовать функцию eventDataTransform

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...