2014-09-26 2 views
0

Я создал две функции ниже, которые получают то, что мне нужно от моего API. Но я не могу понять, как попасть в раздел «События» моего экземпляра fullCalendar.Как подключить мой запрос ajax к событиям?

Это мой Аякса вызов:

$.fn.CalendarEvents = (function() { 
    return $.ajax("/api/exams/", { 
     type: "GET", 
     data: JSON.stringify(this), 
     contentType: "application/json", 
     success: function(data, status, XHR) { 
      callEvents(data); 
     } 
    }); 
}); 

это моя функция обратного вызова:

function callEvents(response) { 
    var calObj = []; 
    $.each(response, function (index, item) { 
     var evt = { 
      title: item.title, 
      start: item.startDateTime, 
      end: item.endDateTime 
     }; 
     calObj.push(evt); 
    }); 
    return calObj; 
    //this writes out exactly what I need to go into my calendar 
    console.log(calObj);  
}; 

Из примеров, я вижу, что они используют корм JSON из URL или файла XML, но мне просто нужен объект javascript, который я создаю в вышеперечисленных функциях.

var calendar = $('#calendar').fullCalendar({ 
    events: { 
     //What do I put here? 
    } 

Спасибо!

ответ

1

Согласно документации events может быть определена как функция:

var calendar = $('#calendar').fullCalendar({ 
    events: getCalendarEvents 
... 


var getCalendarEvents = function(start, end, timezone, callback) { 
    $.ajax("/api/exams/", { 
     type: "GET", 
     data: JSON.stringify(this), // Not sure what you are trying to do here 
     contentType: "application/json", 
     success: function(response, status, XHR) { 
      var calObj = []; 
      $.each(response, function (index, item) { 
       var evt = { 
        title: item.title, 
        start: item.startDateTime, 
        end: item.endDateTime 
       }; 
       calObj.push(evt); 
      }); 
      // You have to execute callback that is provided in the arguments 
      // with your events data 
      callback(calObj); 
     } 
    }); 
}; 
+0

красиво! Это сработало! Благодаря! – SkyeBoniwell