Cannot read property 'hasTime' undefined
Ich bin mit FullCalendar anzeigen Mitarbeiter Stunden auf einem Kalender.
Ich ziehe die Ereignisse über einen ajax-Aufruf etwa so:
"events": function(start, end, timezone, callback) {
//create the data to be sent
var objectToSend = {
"start_date": start.format("YYYY-MM-DD"),
"finish_date": end.format("YYYY-MM-DD"),
};
//craft and make the request
$.ajax({
url: 'calendar/test',
data: objectToSend,
type: 'POST',
cache: false
}).done(function(data) {
//on success call `callback` with the data
callback(data)
})
}
Dieser funktioniert einwandfrei, aber ich erhalte eine Fehlermeldung zeigen, in meiner Konsole "Uncaught TypeError: Cannot read property 'hasTime' of undefined" und das kommt von fullcalendar.min.js:6
.
Ich bin nicht sehr fließend in JavaScript, aber meine Suche deutet darauf hin, dass ich entweder noch nicht zur Verfügung gestellt, die richtige Termine oder junk-Daten dort.
Soweit ich sagen kann, ich bin mit allen richtigen Daten. Die Funktion generieren der Daten sieht so aus:
public function test(Request $request) {
$start_date = Input::get('start_date');
$finish_date = Input::get('finish_date');
$shifts = Roster::whereBetween('date', array($start_date, $finish_date)) - > get();
foreach($shifts as $shift) {
$start = $shift - > date.
' '.$shift - > start_time;
$finish = $shift - > date.
' '.$shift - > finish_time;
$events[] = array(
'title' => $shift - > staff - > first_name,
'start' => Carbon::createFromFormat('Y-m-d H:i:s', $start) - > toDateTimeString(),
'end' => Carbon::createFromFormat('Y-m-d H:i:s', $finish) - > toDateTimeString(),
'id' => $shift - > id,
'allDay' => false
);
}
return json_encode($events);
}
welche Ausgänge:
[{"title":"Gemma","start":"2016-02-01 18:00:00","end":"2016-02-01 22:00:00","id":1,"allDay":false},
{"title":"Gemma","start":"2016-01-26 18:00:00","end":"2016-01-26 22:00:00","id":49,"allDay":false}]
Kann jeder spot, was ich falsch mache? Ich versuche einfach nur, diese zu verwenden, um meinen Veranstaltungen für den jeweiligen Monat.
Edit: die Ausgabe der Konsole.log(Daten)
Druckt er aus:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
Öffnen, bekomme ich:
0: Object
Öffnen, bekomme ich:
allDay: false
end: "2016-02-01 22:00:00"
id: 1
start: "2016-02-01 18:00:00"
title: "Gemma"
- zeigen
callback
Funktion .. - Ich versuche nur zu Folgen Sie diesem fullcalendar.io/docs/event_data/events_function Sie wissen nicht, wo die callback-Funktion ist? Mit Ausnahme eher als die Antwort als XML, ich bin die Bereitstellung als JSON.
- ok, versuchen Sie zu ersetzen
callback(data)
zucallback(data[0])
- könnten Sie die Konsole.log(Daten) vor dem Aufruf des callback
done
funciton - Habe gerade versucht, ich bekomme den gleichen Fehler.
- Ausgabe von
console.log(data)
Hinzugefügt. Es sind mehr Objekte als ich nur zwei in meiner Beispiel-Ausgabe. - Versuchen Sie, um das Datumsformat zu ändern: derzeit ist die start-und Ende ist
"2016-02-01 18:00:00"
format es in der nächsten Weg"2016-02-01T18:00:00"
(addT
vor Stunden), das könnte die Fehler verursachen, während Gebäude Datum incallback
Methode - Es sollte nicht nötig, der T, als ich bauen kann, die Ereignisse einfach nur gut, ohne es. Zum Beispiel, wenn ich manuell bauen die Ereignisse mit dem Beispiel für die Ausgabe, das ist das gleiche wie das, was ich von jedem Objekt, es funktioniert. Ich werde aber versuchen, das hinzufügen der T kurz
- ok, was ist zu ersetzen
done
Rückrufsuccess
auch, Sie könnten definierensuccess
Eigenschaft wie in den Beispielen auf fullCalendar offizielle Seite
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es zu sein, die Sie geben, um
fullCalendar
falschen Veranstaltung s-parameter,Versuchen, machen einige manuell Ereignisse zuerst angezeigt werden.
Danach sicher, dass Ihre Veranstaltungen übereinstimmung mit fullCalendar erwartet params.
[{"title":"Gemma","start":"2016-02-01 18:00:00","end":"2016-02-01 22:00:00","id":1,"allDay":false}]
zeigt die Veranstaltung erfolgreich.jQuery.parseJSON()
?[{"title":"Gemma","start":"2016-02-01 18:00:00","end":"2016-02-01 22:00:00","id":1,"allDay":false}, {"title":"Gemma","start":"2016-01-26 18:00:00","end":"2016-01-26 22:00:00","id":49,"allDay":false}];
fullCalendar
sollte in der Lage sein zu analysieren, Ihre Veranstaltungen, machen Sie sicher, dass Ihrecallback()
Funktion definiert ist und zurückJSON.parse(data)
stattdata
.Ich konnte nicht herausfinden, was schief lief mit dem obigen code, ich habe jedoch umgehen, indem man einen JSON-feed statt:
Bekam ich diesen Fehler, mit der folgenden Funktion
Und ich fand, es war, weil ich versuchte, übergeben Sie den Fall an die post() Funktion. Es spielte keine Rolle, wenn ich änderte den Namen, sobald ich ging ihn entlang, ich denke, es versucht zu serialisieren, und es ergab sich, dass Fehler. Jetzt bin ich manuell angeben und Objekt, wo ich das "Klonen" die entsprechende id, start-und end-mehr, als ich brauche nichts anderes sowieso.
Verwenden:
JSON.parse(data)
im ajax-response.