FullCalendar事件仅在月视图中显示怎么处理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

日历是这样创建的

$('#calendar').fullCalendar({
        header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
        },
        allDayDefault: false,
        selectable: true,
        selectHelper: true,
        editable: true,
        eventLimit: true, // allow "more" link when too many events
   });

事件是通过renderEvent操作(而不是json feed)创建的

$('#calendar').fullCalendar('renderEvent', newEvent, 'stick');

newEvent是这样创建的

newEvent = {
                title : 'mytitle',
                start : startDate,
                allDay: false,
                id: eventId,
                description: 'my test event'
            };

问题是事件在月视图中正确显示,但未在周视图或日视图中显示。

提问于
用户回答回答于

我在代码中看到的唯一问题是创建事件时预期的逗号。

所以我用一个新的时刻对象来创建事件 - 这意味着现在。

  var startDate = moment();
  var eventId = 123;
  var newEvent = {
                title : 'mytitle',
                start : startDate,
                allDay: false,
                id: eventId,   //Is this comma that was missing in your code
                description: 'my test event'
            };

我用你正在做的相同的代码添加它:

$('#calendar').fullCalendar('renderEvent', newEvent, 'stick');

正如你可以检查一下所有的工作正常,所以你提供给我们的代码的唯一问题可能是:

  • 缺少的逗号。
  • eventId变量是错误的
  • startDate变量是错误的
用户回答回答于

你的代码没有任何问题。但是你正在以非标准的方式做一些事情。尝试修复它们,问题可能会消失。

你用来添加事件的方法不是正确的。在FullCalendar术语中,render是指向日历显示数据的过程。所以,当你renderEvent,你只是告诉它在屏幕上显示一个事件。然后stick让它坚持下去(种类)。

相反,你应该使用addEventSource。它可以用来添加任何事件源(​​本地或远程)。事件源可以是从JSON提要到一个事件的本地数组的任何东西。

这应该工作:

$('#calendar').fullCalendar('addEventSource',[{
    title : 'mytitle',
    start : startDate,
    allDay: false,
    id: eventId,
    description: 'my test event'
}]);

扫码关注云+社区