【问题标题】:FullCalendar - update resources businessHoursFullCalendar - 更新资源 businessHours
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2022-10-04
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多