You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Full Calendar:如何修改URL并通过JSON Feed重新获取资源

解决FullCalendar点击按钮更新资源JSON Feed并重新加载的问题

没问题,我来帮你搞定这个需求!其实核心就是更新日历的资源Feed URL,然后触发重新获取资源的方法,具体步骤如下:

  1. 给按钮添加新URL的存储属性
    建议给你的按钮用data-*属性来存储对应的资源URL,这样更语义化也更易维护,比如:

    <button class="resource-button" data-resource-url="example.json?id=2">切换到资源2</button>
    <button class="resource-button" data-resource-url="example.json?id=3">切换到资源3</button>
    
  2. 修改按钮点击事件代码
    在点击事件里,我们需要完成三个动作:获取新URL、更新日历的资源配置、触发重新获取资源。代码如下:

    $('.resource-button').on('click', function() {
      // 从按钮的data属性里拿到新的资源URL
      const newResourceUrl = $(this).data('resource-url');
      
      // 获取FullCalendar的实例
      const calendar = $('#calendar').fullCalendar('getCalendar');
      
      // 更新日历的resources配置为新的URL
      calendar.options.resources = newResourceUrl;
      
      // 调用官方文档里的refetchResources方法,重新请求新的资源Feed
      calendar.refetchResources();
    });
    

原理说明

根据你提到的FullCalendar官方说明,当resources选项是JSON Feed时,refetchResources()会重新请求该资源。我们这里先更新了resources对应的URL,再调用这个方法,日历就会自动用新的URL去拉取资源数据并更新视图了。

如果你用的是FullCalendar v4及以上的版本(API有所调整),代码会稍有不同,比如获取实例用$('#calendar').get(0).getApi(),不过从你当前的初始化代码来看,应该是v3或更早版本,上面的代码完全适用。

内容的提问来源于stack exchange,提问作者scottkekoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:37:44