1

我有一个控制器,它从数据库中获取数据并将其转换为完整日历的事件,当我在其中一个事件中显示模式单击时,它显示描述和电子邮件未定义。

模态未定义字段的图像

但在 XHR 中,我可以看到我从控制器接收所有数据。

XHR GET 的图像

模态:

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

}
4

1 回答 1

0

事件解析文档指出

每个其他非标准道具都将转移到事件对象中的扩展道具散列。

由于description并且mail不是 fullCalendar 中的标准事件属性(如该文档中所列),因此它们将放置在 fullCalendar 根据从您的服务器接收的数据创建的最终事件对象中的“extendedProps”对象下。

因此,在您的eventClick代码中,您应该能够编写

$('#ev_desc').html('Descripcion: ' + eventObj.extendedProps.description);
$('#ev_mail').html('Mail: ' + eventObj.extendedProps.mail);

并将属性成功填充到您的模式中。

PS事件对象文档中也提到了此行为。如果您之前使用过 fullCalendar 版本 3 或更低版本,那么这与这些早期版本的工作方式不同。

于 2019-05-23T09:04:10.067 回答