2016-07-19 33 views
1

Ich verwende FullCalendar und das ist, wie ich es initialisieren:FullCalendar Ereignisse JSON-Feed mit leicht unterschiedlichen Antwortformat

$('#calendar').fullCalendar({ 
    events: $('#calendar').data('source') 
}); 

Das Problem ist, dass die Antwort nicht in dem Format FullCalendar es erwartet wie alle resultset ist unter Daten verschachtelt, dh

{ 
    "data": 
    [ 
     { 
      "title": "Event1", 
      "start": "2011-04-04" 
     }, 
     { 
      "title": "Event2", 
      "start": "2011-04-04" 
     } 
    ] 
} 

gibt es eine Möglichkeit ich einen benutzerdefinierten Rückruf zur Verfügung stellen kann, um es Element des Ergebnisses als die Ereignisquelle verwenden, um Daten zu machen?

ich versucht, dieses

$('#calendar').fullCalendar({ 
    events: function(start, end, timezone, callback) { 
     var url = $('#calendar').data('source'); 
     $.get(url, {start: start, end: end, timezone: timezone}) 
     .done(function(data) { 
      callback(data.data); 
     }); 
    } 
}); 

Aber alles, was ich bekommen, ist ein Fehler JS sagen

moment.min.js:22Uncaught TypeError: Cannot read property '_calendar' of undefined

Antwort

2

ich mein Problem gelöst. Der Fehler kam nicht wirklich von einem FulLCalendar aber Moment.js Bibliothek

$('#calendar').fullCalendar({ 
    events: function(start, end, timezone, callback) { 
     $.ajax({ 
      url: $('#calendar').data('source'), 
      dataType: 'json', 
      data: { 
       start: start.format("YYYY-MM-DD"), 
       end: end.format("YYYY-MM-DD") 
      }, 
      success: function(result) { 
       var events = []; 
       result.data.forEach(function(element) { 
        events.push({ 
         title: element.title, 
         start: element.start 
        }); 
       }); 

       callback(events); 
      } 
     }); 
    } 
}); 
+0

Es hat geholfen !! –