FullCalendar - 更新资源 businessHours

FullCalendar - update resources businessHours

需要一些帮助,需要更新全日历营业时间。

我的代码:

$.each(json_resource, function(index,value){

  var businessHours = { 
    dow: [ value.dow ], 
    start: value.start, 
    end: value.end 
  }

  // GET RESOURCE OBJECT
  var resourceObject = $('#calendar').fullCalendar( 'getResourceById', value.resourceId );

  // ADD NEW BUSINESS WORKING HOUR
  resourceObject.businessHours = businessHours;

  // UPDATE HOURS
  $('#calendar').fullCalendar( 'option', 'resources', resourceObject);

});

问题是 $('#calendar').fullCalendar( 'option', 'resources', events); 它冻结 windows几秒钟。也许还有其他更新资源营业时间的解决方案?

我不确定为什么更新要花几秒钟,大概是fullCalendar的一些内部代码。您可以尝试调试未缩小的版本以查看延迟的位置,并可能向维护者提交错误。

同时,请考虑为此目的使用后台事件。您可以实现相同的视觉效果,但完全按照您的需要每天更改时间,无需自定义代码 - 您可以在主事件提要中提供数据。详情见https://fullcalendar.io/docs/event_rendering/Background_Events

您可以在 viewRender 事件中更新 businessHours 数组:

viewRender: function (view, element) {
    view.calendar.businessHourGenerator.rawComplexDef = [your BusinessHours array]
}