全日历计划程序资源重新获取不更新垂直资源视图



我在使用全日历调度程序插件更新资源时遇到问题。我使用垂直资源视图。奇怪的是,这个问题在时间轴视图中没有发生。

我使用一个函数来(重新(获取资源,假设它很简单,例如:

var t = this;
t.someParam = false;
$(el).fullCalendar({
    resources: function(callback){
            //do stuff
            if(t.someParam === true){
                callback([{id: 1, title: 'title'}]);
            }
            else{
                callback([{id: 2, title: 'title2'}]);
            }
        }
    }
);

这意味着当我重新取回时,我会调用

$(el).fullCalendar('refetchResources')

获取有效(调用资源回调(。此外,在重新获取之前,我将一个参数(例如"someParam"(设置为某个值(true(,这会影响结果(参见示例(,只是为了模拟不同的结果。结果是一个工作数组,如果我调用

$(el).fullCalendar('getResources') //after refetch

预期的资源已添加到日历中。
问题是,资源不会在视图中呈现,直到我跳到另一个视图或更改日期。我尝试了"渲染"功能,但这不起作用。我不想使用"addResource"(最好(,即使这会立即呈现视图。我希望视图更新,就像"重新获取事件"一样。

我遇到了同样的问题。我使用 ajax 将结果作为数组获取,当重新获取资源被称为数组时,数组已更新但未在日历中呈现。

在 fullcalendar.io 文档中,它说

如果将资源选项指定为函数,则将其召回。如果将资源选项指定为 JSON 源,则会再次请求该选项。

所以我所做的只是从完整日历选项中的函数中获取结果,就像您在问题中写一些更新一样

 resources: function(callback){
              if(t.someParam)  {
                 rooms=[{id: 1, title: 'It is TRUE!'},{id: 2, title: 'Resource 2'}]
              }
              else{
                rooms=[{id: 3, title: 'It is False!'},{id: 4, title: 'Resource 4'}]
                  }
                  callback(rooms);
                }

然后添加了一个自定义按钮,该按钮更改了 t.someParam 的值并调用重新获取

 customButtons: {
    addRemoveResource: {
         text: 'refetchResources',
         click: function() {
         t.someParam=!t.someParam;
         $calendar.fullCalendar('refetchResources');
        }
  }

试试这个 http://jsbin.com/gaviwuwave/edit?html,js,output

相关内容

  • 没有找到相关文章

最新更新