过滤FullCalendar JSON事件

问题描述 投票:0回答:1

我试图根据JSON源中的一个特定键的值来过滤FullCalendar上显示的事件。这就是JSON的样子。

events.json

[
  {
    "start": "2020-05-22",
    "end": "2020-05-26",
    "rendering": "background",
    "cottage": "cottage-one"
  },
  {
    "start": "2020-06-22",
    "end": "2020-06-26",
    "rendering": "background",
    "cottage": "cottage-one"
  },
  {
    "start": "2020-05-01",
    "end": "2020-05-06",
    "rendering": "background",
    "cottage": "cottage-two"
  }
]

这就是我的javascript中生成日历的内容。

script.js

  var calendar = new Calendar(calendarEl, {
    plugins: [ dayGridPlugin ],
    firstDay: 1,
    events: 'events.json',
    height: 'auto',
    header: {
      left:   'prev',
      center: 'title',
      right:  'next'
    }

  });

  calendar.render();

这一切都很好,但我只想显示事件的 cottage-one 在这个特殊的例子中。我需要在 脚本.js 来实现这个目标?我已经尝试了一些我在这里找到的方法,但他们更关注动态更新过滤器,我无法成功地改变语法以适应我的使用情况。

任何帮助非常欢迎

javascript json fullcalendar
1个回答
2
投票

你可以使用 eventSourceSuccess 参数来实现这一目的。从文档上看。

一个在获取成功时被调用的函数 A function that gets called when fetching succeeds. 它可以转换响应。

完整的代码是

var calendar = new Calendar(calendarEl, {
  plugins: [ dayGridPlugin ],
  firstDay: 1,
  events: 'events.json',
  eventSourceSuccess: (events, xhr) => events.filter(event => event.cottage === 'cottage-one'),
  height: 'auto',
  header: {
    left: 'prev',
    center: 'title',
    right: 'next'
  }
});

calendar.render();
© www.soinside.com 2019 - 2024. All rights reserved.