2017-06-07 68 views
0

需要一些帮助,与fullcalendar营业时间更新。FullCalendar - 更新资源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); 

}); 

问题是$( '#日历')fullCalendar( '选项', '资源',事件);它冻结窗口几秒钟。也许有更新资源营业时间的另一种解决方案?

+0

这并没有多大意义。你循环所有的事件,并创建一个“businesshours”。然后尝试将其分配给单个资源。目的。如果您在同一个资源中有20个事件,则每次都会根据事件中的内容更新该资源的工作时间20次,每次使用不同的值。似乎不太合乎逻辑。您将始终以该资源循环中最后一个事件的业务小时结束。不应该预先定义每个资源的businessHours,并且在创建日历时交付,而不取决于资源内的事件? – ADyson

+0

@ADyson它没有得到所有的事件,它获取所有资源。我有10个资源,var事件只是名称,它获取资源而不是事件。而且每次更改日期时我都需要循环,因为每天都有不同的工作时间和json_events,它不是事件,而是工作时间的资源对象。 –

+0

你为什么要调用变量“events”呢?旨在混淆每个人!特别是当fullCalendar还有一个关键概念叫做events时。如果“json_events”是资源列表,那么代码仍然没有意义,因为资源不具有您可以读取的“开始”或“结束”属性。 https://fullcalendar.io/docs/resource_data/Resource_Object/ – ADyson

回答

1

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

与此同时,考虑将Background Events用于此目的。您可以达到相同的视觉效果,但完全按照您的要求改变时间,无需自定义代码 - 您可以使用主要事件Feed提供数据。有关详细信息,请参阅https://fullcalendar.io/docs/event_rendering/Background_Events