我对如何通过url(json feed)重新获取资源感到困惑。
这会呈现我的日历资源 -
$('#calendar').fullCalendar({
...
resources: 'example.json?id=1',
...
});
此文档(https://fullcalendar.io/docs/refetchResources)说“如果资源选项被指定为JSON Feed,则会再次请求它。”
所以我有一个按钮,我想点击它来更改资源网址并重新加载资源提要 -
$('.resource-button').on('click', function() {
link = $(this).attr('href');
$('#calendar').fullCalendar('refetchResources', {
resources: link
});
});
知道它为什么不重新加载新的资源链接?资源列表会刷新,就像它正在做某事但数据保持不变。
由于
答案 0 :(得分:1)
此代码
$('#calendar').fullCalendar('refetchResources', {
resources: link
});
毫无意义。根据您链接的文档,“refetchResources”方法不接受任何额外的参数。您提供的{ resources: link }
对象不是预期的,因此fullCalendar会忽略它。我不确定是什么让你想到你可以向这个函数传递更多的参数。
您引用的短语:
“如果资源选项被指定为JSON Feed,则会再次请求它。”
表示它将从现有指定的源重新获取现有资源数据(因此单词“again”)。我想你误解了这个解释。
换句话说,它只是刷新已经指定的来源。如果您希望动态更改资源列表,则需要先使用单独的方法设置资源选项以设置选项。
这是一个在单击按钮时将资源从一个URL切换到另一个URL的示例。您当然可以根据需要进行调整,但需要注意的关键是使用单独的“选项”方法在调用“refetchResources”之前更改资源URL。
HTML:
<button type="button" id="changeResources">
Click to Change Resources
</button>
<div id='calendar'></div>
JavaScript的:
var resources = [
"https://api.myjson.com/bins/m7blz",
"https://api.myjson.com/bins/cqj3b"
]
var currentResourceIndex = 0;
$(document).ready(function() {
$('#calendar').fullCalendar({
resources: resources[currentResourceIndex],
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
defaultView: 'timelineDay',
header : {
left: 'prev, today',
center: 'title',
right: 'next'
},
});
$("#changeResources").click(function() {
if (currentResourceIndex == 0) currentResourceIndex = 1;
else currentResourceIndex = 0;
$('#calendar').fullCalendar('option', 'resources', resources[currentResourceIndex]);
$("#calendar").fullCalendar("refetchResources");
});
});
有关使用按钮切换资源的工作演示,请参阅http://jsfiddle.net/toytd26b/57/。(根据上面的代码)。
有关如何在初始化日历后设置日历选项的文档,请参阅https://fullcalendar.io/docs/dynamic-options。
答案 1 :(得分:1)
$('.resource-button').on('click', function() {
link = $(this).attr('href');
$('#calendar').fullCalendar('option', 'resources', link);
$('#calendar').fullCalendar('refetchResources');
});