在调度程序渲染后动态设置 resourceOrder

Posted

技术标签:

【中文标题】在调度程序渲染后动态设置 resourceOrder【英文标题】:Set resourceOrder dynamically after the scheduler was rendered 【发布时间】:2017-11-07 22:56:06 【问题描述】:

我在 Angular 1.5 应用程序中使用 fullCalendar 调度程序。

我将它包装到一个指令中,并且在指令中我有一个包含所有属性的配置对象

var calendarConfig = 
  schedulerLicenseKey: '----------------------------',
  resources: function (callback) 
    scope.getResources()(callback);
  ,
  resourceColumns: [
    
      labelText: 'Name',
      field: 'name'
    ,
    
      labelText: 'Id',
      field: 'id',
      width: "85px"
    
  ],
  resourceOrder: "name",
  defaultView: "timelineMonth",
  resourceLabelText: "Test",
  resourceAreaWidth: "17%",
  aspectRatio: '100%',
  header: 
    left: 'reorderBtn',
    center: 'title',
    right: 'prev next'
  ,
  customButtons: 
    sortName: 
      text: 'reorderBtn',
      click: function (oEvent) 
        ---------- how to perform the reordering inside here ? ----
      
    
  ,
  eventClick: eventClick,
  dayClick: dayClick,
  viewRender: viewRender,
  weekNumbers: true,
;

我注意到调度程序有一个名为“resourceOrder”的属性,它在初始化时效果很好。

我的用例是当我按下按钮时,我想查看按名称降序排列的资源。

我尝试使用

$(element).fullCalendar('getView').options.resourceOrder = "-name"
$(element).fullCalendar('render')

但它不起作用。

我可以手动对指令之外的资源进行排序,然后将排序后的资源重新设置为源,但我想避免这种情况并利用调度程序提供的好属性“resourceOrder”。

有什么想法吗?或者关于如何一次按一列对资源进行排序的任何最佳实践?

【问题讨论】:

【参考方案1】:

您可以使用 fullCalendar setters and getters 动态设置或获取 fullCalendar 选项。

在你的情况下:

$('#calendar').fullCalendar('option', 'resourceOrder', '-name');

【讨论】:

效果很好。我现在可以删除解决方法! :D 非常感谢!!【参考方案2】:

适用于 FullCalendar v5.0+

calendar.setOption('resourceOrder', '-name')

【讨论】:

【参考方案3】:

Angular2+FullCalendar5

resourceOrder 的默认值为:'id, title'。覆盖默认值

calendarOptions: CalendarOptions = 
  height: "500px",
  resourceOrder: 'type1', // Here ...
  // resourceOrder: '-type1', // If prefixed with a minus sign like '-type1', the ordering will be descending.
  //resourceOrder: 'type1,type2', //  Compound ordering criteria can be specified as a single string separated by commas.
  resources: [
    
      id: 'A',
      title: 'Resource A',
      type1: 10,
      type2: 55
    ,
    
      id: 'B',
      title: 'Resource B',
      type1: 12,
      type2: 60
    ,
  ],
  ...

【讨论】:

以上是关于在调度程序渲染后动态设置 resourceOrder的主要内容,如果未能解决你的问题,请参考以下文章

动态组件试用的时候没效果

react-router-dom 开关在动态路径后不渲染组件

3d max 2016修改渲染设置参数导致程序崩溃怎么办?

easyui动态生成combobox并渲染后,设置默认选中项,之后取控件的值都是同一个?

调度算法

作业调度算法