2016-07-29 17 views
0

Ich versuche Ereignisse auf dem fullcalendar aus der JSON-Antwort zu machen, dann istJSON Ereignisse auf vollen Kalender Render

$.ajax({ 
     url : $("body").attr("data-link")+'/calendar/events', 
     type : 'post', 
     dataType: 'json', 
     success: function(e){ 
      if(e.success){ 
       var events = []; 
       $.each(e.events,function(index,value){ 
        events.push({ 
         title : value.title, 
         start : moment(value.start_date).format('YYYY-MM-DD'), 
         end : moment(value.end_date).format('YYYY-MM-DD'), 
        }); 
       }); 
       calendar.fullCalendar('renderEvent', events , true); 
       console.log(events); 
      } 
     } 
    }); 

hier meine fullcalendar

einrichten
var calendar = $('#calendar').fullCalendar({ 
     customButtons: { 
      myCustomButton: { 
       text: 'Add Event', 
       click: function() { 

       } 
      } 
     }, 
     header: { 
      left: 'prev,next today myCustomButton', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     editable : false, 
     eventLimit: true, 
     eventClick: function(calEvent, jsEvent, view, element) { 
     }, 
     eventRender: function(event, element) { 
      element.attr("data-id",event.id); 
     }, 

    }); 

in der Konsolenprotokoll.

enter image description here

und dann gibt es mir diesen Fehler,

Uncaught TypeError: Cannot read property 'hasTime' of undefined

irgendwelche Ideen, bitte helfen?

+0

hat das Protokoll richtig aussehen zu trösten? –

+0

ja., Im Konsolenprotokoll, ist es korrekt –

+0

Führt 'console.log (events);' alle Ereignisse korrekt aus? –

Antwort

0

Sie entweder renderEvent für jedes Ereignis in events nennen könnte oder ganze Array hinzufügen als Datenquelle

$.ajax({ 
     url : $("body").attr("data-link")+'/calendar/events', 
     type : 'post', 
     dataType: 'json', 
     success: function(e){ 
      if(e.success){ 
       var events = []; 
       $.each(e.events,function(index,value){ 
        events.push({ 
         title : value.title, 
         start : moment(value.start_date).format('YYYY-MM-DD'), 
         end : moment(value.end_date).format('YYYY-MM-DD'), 
        }); 
       }); 
       calendar.fullCalendar('addEventSource', events); 
      } 
     } 
    }); 
+0

richtig, das was ich gerade benutze, danke! –

+1

BTW können Sie Funktionen als eventsource verwenden. [Dokumente] (http://fullcalendar.io/docs/event_data/events_function/). –