在呈现调度程序后动态设置resourceOrder

时间:2017-06-06 19:22:49

标签: angularjs fullcalendar fullcalendar-scheduler

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

我把它包装成一个指令,在指令里面我有一个包含所有属性的配置对象

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')

但它不起作用。

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

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

1 个答案:

答案 0 :(得分:1)

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

在你的情况下:

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