完整日历 - refetchResources

时间:2018-03-24 19:03:29

标签: fullcalendar fullcalendar-scheduler

我对如何通过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
    });
 });

知道它为什么不重新加载新的资源链接?资源列表会刷新,就像它正在做某事但数据保持不变。

由于

2 个答案:

答案 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');
 });