我在使用fullcalendar scheduler插件更新资源时遇到问题。 我使用垂直资源视图。奇怪的是,在时间线视图中不会发生此问题。
我使用一个函数来(重新)获取资源,为了一个例子的目的,让我们说它很简单,如下:
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')
fetch工作(调用资源回调)。此外,在重新获取之前,我将参数(例如" someParam")设置为某个值(true),这会影响结果(请参阅示例),只是为了模拟不同的结果。结果是一个工作数组,如果我打电话
$(el).fullCalendar('getResources') //after refetch
目标资源已添加到日历中 问题是,在我跳到另一个视图或更改日期之前,资源不会在视图中呈现。我尝试过渲染'功能,但这不起作用。我不想使用' addResource' (最好),即使这会立即呈现视图。我希望视图更新,就像使用“refetchEvents'”一样。
答案 0 :(得分:1)
我有同样的问题。我将结果作为带有ajax的数组获得,当调用refetchResources时,数组已更新但未在日历中呈现。
在fullcalendar.io文档中,它说
如果将resources选项指定为函数,则会调用它。如果将resources选项指定为JSON提要,则会再次请求它。
所以我所做的就是在你用一些更新写下问题时从fullcalendar选项中的函数中获取结果
/System/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv -p python3 env
然后添加了一个自定义按钮,它改变了t.someParam的值并调用了refetch
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);
}
试试这个this guide