У меня есть контроллер, который получает данные из базы данных и превращает их в события для полного календаря, когда я отображаю модальное нажатие в одном из этих событий, он показывает, что описание и электронная почта не определены.
Изображение модальных неопределенных полей
Но в XHR я вижу, что я получаю все данные от контроллера.
Модальный:
<div id = "fullCalModal" class = "modal fade" style = "z-index: 9999;>
<div class = "modal-dialog">
<div class = "modal-content">
<div class = "modal-header">
<h4 id = "modalTitle" class = "modal-title"></h4>
</div>
<div id = "modalBody" class = "modal-body">
<p id = "ev_start" class = "modal-body"></p>
<p id = "ev_end" class = "modal-body"></p>
<p id = "ev_mail" class = "modal-body"></p>
<p id = "ev_desc" class = "modal-body"></p>
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-default" data-dismiss = "modal">Close</button>
<button class = "btn btn-primary"><a id = "eventUrl" target = "_blank">Event Page</a></button>
</div>
</div>
</div>
Javascript:
eventClick: function(info) {
var eventObj = info.event;
alert('Clicked ' + eventObj.title + ' with id: ' + eventObj.id + eventObj.description);
$('#modalTitle').html(eventObj.title);
$('#ev_titulo').html(eventObj.title);
$('#ev_start').html('Fecha inicio: ' + eventObj.start);
$('#ev_end').html('Fecha fin: ' + eventObj.end);
$('#ev_desc').html('Descripcion: ' + eventObj.description);
$('#ev_mail').html('Mail: ' + eventObj.mail);
$('#fullCalModal').modal('show');
},
Контроллер:
public function loadAction()
{
$em = $this->getDoctrine()->getManager();
$eventos = $em->getRepository('App:Evento')->findAll();
$data = array();
foreach ($eventos as $evento)
{
$events['id'] = $evento->getId();
$events['title'] = $evento->getTitle();
$events['start'] = $evento->getBeginAt()->format('Y-m-d');;
$events['end'] = $evento->getEndAt()->format('Y-m-d');;
$events['color'] = $evento->getColor();
$events['description'] = $evento->getDescription();
$events['mail'] = $evento->getMail();
array_push($data, $events);
}
return $this->json($data);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


документация по разбору событий утверждает, что
Every other non-standard prop will be transferred over to the extendedProps hash in the Event Object.
Поскольку description и mail не являются стандартными свойствами события в fullCalendar (как указано в этой документации), они будут помещены в объект «extendedProps» в конечном объекте события, который fullCalendar создает на основе данных, которые он получает с вашего сервера.
Поэтому в вашем коде eventClick вы должны иметь возможность писать
$('#ev_desc').html('Descripcion: ' + eventObj.extendedProps.description);
$('#ev_mail').html('Mail: ' + eventObj.extendedProps.mail);
и успешно заполните свойства в вашем модальном окне.
P.S. Это поведение также упоминается в документация объекта события. Если вы ранее использовали fullCalendar версии 3 или ниже, то это изменение по сравнению с тем, как работали эти более ранние версии.
Без проблем. Если ответ помог вам, не забудьте отметить его как «принятый» (нажмите на галочку рядом с ответом, чтобы он стал зеленым) - спасибо :-)