2016-05-28 20 views
1

Ich habe die zwei Arten von Ereignissen, nämlich 'Ferien' und 'Ereignisse', die von zwei Variablen erhalten werden sollten. Die Variablen halten die Ajax-Antworten. Jetzt möchte ich die Feiertage und Ereignisse als 'Ereignisse' in den Kalender eintragen. Ich weiß nicht, wie ich die Variablen weitergeben soll. Das Folgende ist mein Ajax-Code, der zu Variable deklariert wird. Ist mein Code korrekt?Fullcalendar: wie man Ereignisse von zwei Variablen erhält und durch 'eventAfterRender' geht?

var return_holidays = function() { 
var holdays = []; 
$.ajax({ 
     url: "/calendar/show_holidays", 
     type: 'POST', // Send post data 
     data: 'type=fetch', 
     async: true, 

     success: function(s) 
      { 
      //alert(s); 
       holdays = s; 
       } 
    }); 
    return holdays; 
}();  
var return_events = function() { 
var dynamic_events = [];  
$.ajax({ 
     url: "calendar/show_events", 
     type: 'POST', // Send post data 
     data: 'type=fetch_events', 
     async: true, 

     success: function(s) 
     {//alert(s); 
     dynamic_events = s; 
      } 
    }); 
    return dynamic_events; 
}();  


$('#calendar').fullCalendar({ 

utc: true, 
header: { 
left: 'prev,next today', 
center: 'title', 
right: 'month,agendaWeek,agendaDay' 
}, 
editable: true, 
droppable: true, 
eventSources: [return_holidays, return_events],//am calling the variables 
eventAfterRender: function(event, element, view) { 
element.append(event.title); 
} 

}); 

Kann ich auf diese Weise erreichen? Ist das richtig?

Antwort

3

Der Rückgabetyp von return_holidays, return_events sollte JSON sein, sodass Sie versuchen könnten, JSON.stringify(yourArray); anstelle eines einfachen Arrays zurückzugeben. Sie könnten auch versuchen, den Kalender Deal mit dem Abruf Geschäft im Stich gelassen:

$('#calendar').fullCalendar({ 

    eventSources: [ 

     { 
      url: '/calendar/show_holidays', 
      type: 'POST', 
      data: { 
       'type' : 'fetch' 
      }, 
      error: function() { 
       alert('there was an error while fetching holidays!'); 
      }, 
     }, 
     { 
      url: '/calendar/show_events', 
      type: 'POST', 
      data: { 
       'type' : 'fetch_events' 
      }, 
      error: function() { 
       alert('there was an error while fetching events!'); 
      }, 
     } 
    ] 
}); 

http://fullcalendar.io/docs/event_data/events_json_feed/

Alternativ können Sie die URLs direkt in den Kalender übergeben:

$('#calendar').fullCalendar({ 
    eventSources: [ 
     '/calendar/show_holidays', 
     'calendar/show_events' 
    ] 
}); 

http://fullcalendar.io/docs/event_data/eventSources/

immer machen Stellen Sie sicher, dass Sie Objekte im JSON-Format von Ihrem Backend neu abstimmen.

+0

yah peer danke für den link, vergesst nicht, mir einen upvote zu geben .. :) – Keynes