指定全日历事件源的数据



我正在使用jQuery fullcalendar插件。在同一页面上,我有一个带有复选框的表单,用于过滤从服务器获取的事件数据。这个想法是我想将这些表格值传递到eventSources对象中,以便它们与启动/结束时间戳一起传输到服务器。

文档具有这样的示例eventSources对象:

$('#calendar').fullCalendar({
   eventSources: [
     // your event source
      {
        url: '/myfeed',
        type: 'POST',
        data: {
          custom_param1: 'something',
          custom_param2: 'somethingelse'
        },
      }
      // other sources...
   ]
});

我修改为:

   eventSources: [
   {
     // ...as above
     data: getFormAsObject(),
     // as above...
   }

我希望表单的值传递到data对象中。在getFormAsObject()函数中,我将表单序列化并将其转换为关联数组。

剩下的就是劫持表单提交。因此,如果单击"提交"按钮,我取消默认的帖子操作,然后致电

calendar.fullCalendar("refetchEvents");

但是,这不起作用,并且getFormAsObject()根本没有被调用。我在做什么错?

问题是(似乎)FullCalendar仅读取data对象一次。因此,即使我将其设置为函数,它也会第一次读取它,然后再读取。我不确定,但我认为这可能是基础ajax()的工作方式?

因此,我将其更改为删除eventSources,然后每次进行更新时读取新的。似乎很丑陋,但有效。

使用"动态数据参数"第二个选项在这里:https://fullcalendar.io/docs/events-json-feed

$('#calendar').fullCalendar({
  events: {
    url: '/myfeed.php',
    data: function() { // a function that returns an object
      return {
        dynamic_value: Math.random()
      };
    }
  }
});

相关内容

  • 没有找到相关文章

最新更新