FullCalendar事件仅在月视图中显示

low*_*ing 19 javascript jquery fullcalendar

我正在使用FullCalendar http://fullcalendar.io/在网页上显示一些事件.

日历就是这样创建的

$('#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
   });
Run Code Online (Sandbox Code Playgroud)

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

$('#calendar').fullCalendar('renderEvent', newEvent, 'stick');
Run Code Online (Sandbox Code Playgroud)

newEvent就是这样创建的

newEvent = {
                title : 'mytitle',
                start : startDate,
                allDay: false,
                id: eventId,
                description: 'my test event'
            };
Run Code Online (Sandbox Code Playgroud)

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

UPDATE

我使用的是这种日期格式:2015-02-01T01:00:00

Mar*_*ero 9

我创建了一个再现代码plunker.我在代码中看到的唯一问题是在创建事件时需要的逗号.

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

  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'
            };
Run Code Online (Sandbox Code Playgroud)

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

$('#calendar').fullCalendar('renderEvent', newEvent, 'stick');
Run Code Online (Sandbox Code Playgroud)

因为你可以检查plunker一切正常,所以你提供给我们的代码唯一的问题可能是:

  • 丢失的逗号.
  • eventId变量是错误的
  • startDate变量是错误的

此外,如果您查看渲染事件的文档,则表示您没有正确使用"stick"变量.它应该是一个布尔值.在您的代码中工作是因为您可以在第9229行检查版本2.3.1,将其作为表达式进行比较,因此任何字符串(非空)都将为true.您可以在此答案中获得有关此内容的更多信息:https://stackoverflow.com/a/4923684/2686163

因此,如果将第三个参数设置为:

  • 真正
  • '棒'
  • '不粘'
  • '假'
  • '随你'

...始终被解析为粘性,并添加到stickySource.但是,正如@slicedtoad所评论的那样,您应该更改它以避免将来的版本出现问题.


sli*_*oad 7

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

您用于添加事件的方法不正确.在FullCalendar术语中,render表示向日历显示数据的过程.所以当你renderEvent,你只是告诉它在屏幕上显示一个事件.然后stick使它坚持(有点).

相反,你应该使用addEventSource.它可用于添加任何事件源(​​本地或远程).并且eventSource可以是从JSON提要到一个事件的本地数组的任何内容.

这应该工作:

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

这会给你一个持续整个会话的事件.它还具有与所有其他fullcalendar选项和回调良好匹配的好处.