Próbuję zaktualizować obiekt FullCalendar za pomocą funkcji, która odbiera tablicę zdarzeń.
$("#sh1_cal").fullCalendar({
events: function(callback) {
$.ajax({
type: "GET",
url: "http://localhost:8080/getEvents",
dataType: "json",
success: function(reply) {
//var events = [];
console.log("printing " + reply.first)
alert(typeof reply.first);
callback(reply.first);
}
});
}
});
Odpowiedź ma być obiektem zawierającym dwatablice jako jego właściwości. Wyodrębniam pierwszy i wydaje się, że alert typeof zwraca poprawny typ, ale wywołanie zwrotne nie działa. Jakieś sugestie?
Odpowiedzi:
1 dla odpowiedzi № 1Nie korzystałem z tej wtyczki, ale z dokumentów (http://arshaw.com/fullcalendar/docs/event_data/events_function/) wygląda na to, że funkcja zdarzeń przyjmuje 3 parametry: początek, koniec i oddzwonienie.
Początek i koniec to obiekty daty wskazujące, kiedywydarzenie zaczyna się i kończy. Tak jak teraz, funkcja ta uważa, że istnieje obiekt daty o nazwie „callback”, dlatego otrzymujesz błąd. W JavaScript nazwa parametru nie jest ważna (na przykład możesz nazwać go „cb” lub „foo” zamiast „callback”), ale kolejność jest.
Spróbuj (untested):
$("#sh1_cal").fullCalendar({
events: function(start, end, callback) {
$.ajax({
type: "GET",
url: "http://localhost:8080/getEvents",
dataType: "json",
success: function(reply) {
callback(reply.first);
}
});
}
});
0 dla odpowiedzi nr 2
Spróbuj tego:
$("#sh1_cal").fullCalendar({
events: "http://localhost:8080/getEvents"
});
Nie powinno być potrzeby pisania własnego wywołania ajax, jest ono wbudowane.
Jeśli to nie działa, czy możesz opublikować dane wyjściowe kanału JSON?
0 dla odpowiedzi № 3
spróbuj tego i daj mi znać, czy to działa:
$("#sh1_cal").fullCalendar({
events: function(cb) {
$.ajax({
type: "GET",
url: "http://localhost:8080/getEvents",
dataType: "json",
success: function(reply) {
return cb(reply.first);
//or try: cb(reply.first);
}
});
}(callback)
});
jeśli nie to, usuń zwrot z oddzwonienia.
pracował albo?
* Uwaga: Zakładam, że „callback” jest funkcją, którą przekazujesz i gdzieś ją utworzyłem.
0 dla odpowiedzi nr 4
Zdarzenie (jako funkcja) w pełnym kalendarzu zostało zmienione. Teraz trzecim parametrem jest strefa czasowa. Więcej informacji na temat Dokumentacja FullCalendar v2