【发布时间】:2017-06-07 21:20:29
【问题描述】:
需要一些帮助,更新完整的日历营业时间。
我的代码:
$.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); 它会冻结窗口几秒钟。或许还有其他更新资源营业时间的解决方案?
【问题讨论】:
-
这没有多大意义。您遍历所有事件,并创建一个“营业时间”。然后您尝试将其分配给单个资源。目的。如果您在同一资源中有 20 个事件,它将根据事件中的内容,每次使用不同的值更新该资源的营业时间 20 次。似乎不太合乎逻辑。您将始终以该资源循环中最后一个事件的 businessHours 结束。每个资源的 businessHours 不应该是预先定义的,并在您创建日历时交付,而不依赖于资源中的事件吗??
-
@ADyson 它没有获取所有事件,而是获取所有资源。我有 10 个资源,而 var 事件只是名称,它获取资源而不是事件。而且我每次更改日期时都需要循环,因为每天都有不同的工作时间,而 json_events 它不是事件,它是具有工作时间的资源对象。
-
那你为什么称变量为“events”呢???旨在迷惑所有人!特别是当 fullCalendar 也有一个称为事件的关键概念时。如果“json_events”是资源列表,那么代码仍然没有意义,因为资源没有您可以读取的“开始”或“结束”属性。 fullcalendar.io/docs/resource_data/Resource_Object
-
另外,我仍然不明白您为什么不在创建日历之前定义所有这些。这里缺乏上下文。你有一个资源列表。这些是您加载到日历中的相同资源吗?为什么他们还没有定义营业时间?
-
@ADyson 再来一次,我的员工(日视图中的资源)每天都有不同的工作时间,所以我无法在 businessHour 中指定全年工作时间。所以然后我更改了我需要检查员工(资源)工作时间并更新它的日期(我的代码有效(但它会冻结窗口几秒钟))。请看这里资源有开始结束营业时间fullcalendar.io/docs/resource_data/businessHours-per-resource(我的资源有开始和结束)。所以这不是问题。问题是,如何不使用选项更新 businessHour 不同。 (我更新名称)
标签: jquery fullcalendar fullcalendar-scheduler