如何更改 fullcalendar v5 中的空事件选择内容?

How to change empty event selection content in fullcalendar v5?

我想在空的 timegrid 事件中显示不同的内容并且已经呈现 events.I 使用 eventContent 但它改变了它们中的内容。

eventContent: function (event) {
        console.log(event)
        var etitle = ''
        if (event.event.title) {
            etitle = `<label title="` + event.event.title + `" class="bg-b-warning event-lbl-shadow rounded py-1 px-2 text-light " style="overflow: hidden; max-width: 100%;">` + event.event.title + `</label>`
        } else {
            etitle = ''
        }
        return {
            html: `
        <div class="st_event_container overflow-hidden w-100 p-2 row mx-auto">
            <div class="col p-0 "><label class="bg-light event-lbl-shadow rounded py-1 px-2 text-dark mr-1">`+ event.timeText + `</label></div><div class="col p-0 mb-1">` + etitle + `</div>
            
        
        </div>` }
    },

截图清晰(blue事件已经渲染,semitransparent为空格选择)

这里显示了4个资源,设置在今天查看

selectMirror 选项设置为 true 时,似乎会发生这种情况。 (我只是为未来的读者澄清一下,因为问题中没有提到该选项的使用,但如果没有设置,就不可能发生这种行为。)

有一种简单的方法可以区分正常事件和这些“镜像”事件 - 如果您检查提供给 eventContent 回调的信息对象(以及您在控制台中登录的代码),您会看到有一个 isMirror 属性 仅当渲染的元素表示镜像选择时才设置为真。

所以你可以这样写:

eventContent: function(info)
{
  if (info.isMirror == true)
  {
    //do whatever you want to do for mirror events here
  }
  else
  {
    //do whatever you want to do for regular events here
  }
}

(N.B。代码质量说明:在我的示例中,我将参数重命名为“info”,因为“event”用词不当 - 事件数据存储在 info 中的 属性 object,并且写类似 event.event.title 的东西显然是荒谬的,并且因为 isMirror 不是事件的 属性,所以写 event.isMirror 可能会产生误导。使用错误的名称也会使当您稍后回过头来看时,您的代码更难理解。)