指定Fullcalendar的eventSources的数据

时间:2012-11-08 00:42:44

标签: javascript ajax jquery fullcalendar

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

The docs有一个示例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()函数中,我将表单序列化并将其转换为关联数组。

剩下的就是劫持表单提交。因此,如果单击“提交”按钮,我将取消默认的POST操作,然后调用

calendar.fullCalendar("refetchEvents");

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

2 个答案:

答案 0 :(得分:1)

问题是(似乎)Fullcalendar只读取data个对象一次。因此,即使我将其设置为函数,它也是第一次读取而不是再读取它。我不确定,但我认为潜在的ajax()调用可能是如何工作的?

所以我已将其更改为删除eventSources,然后每次更新时都会读取新的。{1}}。看起来很难看,但很有效。

答案 1 :(得分:0)

使用“动态数据参数” 这里倒数第二个选项: 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()
      };
    }
  }

});