2017-09-18 1 views
0

Ich bin auf einem Ionic 3-Projekt, wo ich ein FullCalendar-Plugin für die Anzeige eines Kalenders verwenden. Ich habe ein Problem mit diesem Code im Modul der Seite, wenn ich versuche, den Hintergrund eines einzelnen Tages im Kalender zu ändern. Ich habe die DayRender-Funktion von FullCalendar verwendet.date.getDate() ist keine Funktion. (In 'date.getDate()', 'date.getDate()' ist nicht definiert) FullCalendar in Ionic 3

$('#calendar').fullCalendar({ 

      dayRender: function (date, cell) { 
       var today = new Date('2017-09-11T00:40Z') 
       if (date.getDate() == today.getDate()) { 
        this.cell.css("background-color", "red"); 
       } 
      }, 
}); 

Ich habe diesen Laufzeitfehler in der Ausgabe:

date.getDate() is not a function. (In 'date.getDate()', 'date.getDate()' is undefined) FullCalendar in Ionic 3

so verstehe ich nicht, warum, weil Datum ein Date-Objekt ist, das bereits in FullCalendar Bibliothek definiert wurde.

Irgendwelche Lösungen?

ps: Sorry für mein schlechtes Englisch.

+0

"data" = "date" * ... und ... * "getData" = "getDate" –

+0

sorry ich will sagen! Datum Objekt – Lamoichenzio

+0

Aber Ihr Fehler ist, dass ** Daten **. ** getData ** ist keine Funktion –

Antwort

1

Die Dokumentation des dayRender Rückruf bei https://fullcalendar.io/docs/display/dayRender/ sagt

date is the Moment for the given day.

So date in Ihrem Code ein momentJS Objekt, kein Date-Objekt. Deshalb gibt es die Methode getDate nicht. Sie würden besser sein today zu schaffen, wie ein momentJS zu widersprechen, und dann kann man sie direkt vergleichen:

$('#calendar').fullCalendar({ 
    dayRender: function (date, cell) { 
    var today = moment('2017-09-11T00:00Z'); 
    if (date.isSame(today, "day")) { 
     cell.css("background-color", "red"); 
    } 
    }, 
    //... 
}); 

Für ausführlichere Informationen über den Code, den ich geschrieben habe, sehen http://momentjs.com/docs/#/parsing/string/ Einzelheiten zu Tage, dass der Moment Konstruktor kann analysieren, und http://momentjs.com/docs/#/query/is-same/ für Details der Datumsvergleichsmethode.

Sie können ein Arbeitsbeispiel der oben sehen hier: http://jsfiddle.net/sbxpv25p/22/

+1

Auch können wir hinzufügen, dass Sie ein echtes Datum im Moment "generieren" können, indem Sie "Moment" ohne irgendwelche Argumente aufrufen. –

+0

Ich habe bereits gelesen, dass das Datum ein MomentJS-Objekt ist, wie das Dokument sagt, aber in meiner IDE für die Funktion Tag rende es sagen: (Eigenschaft) TagRender: (Datum: Datum, Zelle: HTMLTableDataCellElement). Eigentlich, wenn ich Ihren Code verwenden, funktioniert date.isSame (heute) nicht, da Datum kein MomentJS Objekt ist (zumindest nach IDE). – Lamoichenzio

+0

Leider spricht Ihre IDE von ihrer Rückseite :-). Und die Dokumentation für das Produkt selbst wird genauer sein als das, was Ihre IDE zu erraten versucht hat. Ich habe auch ein paar kleine Fehler in dem, was ich geschrieben habe, bemerkt, was ich nun in der obigen Antwort korrigiert habe. Sie können auch ein funktionierendes Beispiel meines Codes hier sehen: http://jsfiddle.net/sbxpv25p/21/ – ADyson

Verwandte Themen