如何动态更改日历.EventRender函数,以便将所有事件的标题更改为ExtendedProp



tldr;想要使用自定义按钮定义一个按钮,该按钮将在单击时更新所有事件设置Event.setProp(title,ExtendedProps.avres(。

长版本:我试图通过更改EventRender函数以更新event.title(从而更改事件应显示的内容(将所有事件的标题更改为ExtendedProps.avres.avres。我已经确定我需要设置事件的标题道具以更改显示的标题,但是在尝试动态更改Eventrender函数时,我正在撞到墙上。这是我尝试过的代码,当前默默失败。

...
//,buttonText:'AV Resources'
function eventtitleToAvres(info){
  if (info.event.title!=info.event.extendedProps.avres{info.event.setProp(title,extendedProps.avres);}
}
...
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
...
,customButtons:{
  eventtitles:{text:'Titles',click:function(calendar){calendar.eventRender .= eventtitleToDbTitle;}}
  ,eventavres:{text:'AV Resources',click:function(calendar){calendar.eventRender = eventtitleToAvres;}}
  ,eventparticipants:{text:'Participants',click:function(calendar){calendar.eventRender = eventtitleToParticipants;}}
            }
...

但是单击创建的按钮AV资源无济于事。显示的事件标题保持不变,如果我使事件被更新。

EventRender:解决此问题的错误途径。相反,我做了以下操作(使用...用于与此解决方案相关的不重要的代码,而该解决方案不会在其求解的代码中混淆。

<script>
    ...
    var eventTextField='dbtext';
    document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');
        var calendar = new FullCalendar.Calendar(calendarEl, {
       ...
        ,customButtons:{
                    eventtitles:{text:'Titles',click: eventtitleToDbTitle}
                    ,eventavres:{text:'AV Resources',click: eventtitleToAvres}
                    ,eventparticipants:{text:'Participants',click: eventtitleToParticipants}
            }
    ,header:left:'prev,next',center:'title',right:'eventtitles,eventavres,eventparticipants'} 
    ...
    });
    calendar.render();
    function changeTitleField(value,index,array){
        value.setProp('title',value.extendedProps[eventTextField]);
    }
    function eventtitleToDbTitle(){
        eventTextField='dbtitle';
        currEvents=calendar.getEvents();
        currEvents.forEach(changeTitleField);
    }
    function eventtitleToAvres(){
        eventTextField='avres';
        currEvents=calendar.getEvents();
        currEvents.forEach(changeTitleField);
    }
    function eventtitleToParticipants(){
        eventTextField='panelists';
        currEvents=calendar.getEvents();
        currEvents.forEach(changeTitleField);
    }
});
</script>

因此,在文档内容加载功能中使用上述内容,您必须在驱散新日历后必须声明其他功能,否则它错误而行不通。尝试使用Eventrender会导致种族条件或仅有很长的运行事件负载,甚至只有110个事件,它在15分钟后仍在搅动。.以这种方式书写,需要15-45秒才能重新启动这些事件,但确实如此工作,我可以查看不同的领域...我的项目是为组织编程活动编写一个工具,以进行小型粉丝运行(非利润(约定...这使我可以安排事件,然后选择AV视图以寻找需要在没有AV资源的房间中需要AV硬件的活动。最终,它允许我看到参与者的名字列表,但这更为复杂,因为活动小组成员字段是一系列参与者ID,而不是名字。

相关内容

  • 没有找到相关文章

最新更新