Laravel 8中为FullCalendar JS插件添加额外字段值输出undefined如何解决
问题原因
- FullCalendar 所有自定义的非标准事件字段,都会统一存放在事件对象的
extendedProps属性下。而eventDidMount回调的入参是包含当前事件、DOM元素等信息的复合对象,你直接读取入参的status属性本身就不存在,自然返回undefined。 - 代码中使用全局选择器
$('.fc-event-time')会匹配页面上所有日历事件的时间节点,后续多事件渲染时会出现状态重复追加、错位的问题。
解决方法
你后端Laravel返回事件数据的逻辑没有问题,仅需修改FullCalendar初始化时的 eventDidMount 代码即可:
events: 'getEvents', eventDidMount: function(info) { // 从extendedProps读取自定义的status字段 const eventStatus = info.event.extendedProps.status; // 仅操作当前正在渲染的事件对应的DOM元素 info.el.querySelector('.fc-event-time').append(document.createElement('br'), eventStatus); }
如果你的项目中使用jQuery,也可以写为:
eventDidMount: function(info) { const eventStatus = info.event.extendedProps.status; $(info.el).find('.fc-event-time').append('<br/>' + eventStatus); }
内容的提问来源于stack exchange,提问作者user12414491
相关产品推荐
相关产品推荐

