2016-04-06 19 views
32

Meine Anwendung hat eine HTML-Form mit einigen Eingaben, die vom Backend eingegeben werden, und anderen Eingaben, die vom Benutzer eingegeben werden (in einem time Eingang). Eine onChange Funktion läuft durch jeden Eingang, wenn der Benutzer einen Wert ändert.Wie testen, ob eine Variable ein Moment.js-Objekt ist?

Die vom Backend aufgefüllten Daten werden in moment Objekte konvertiert, die vom Benutzer eingegebenen Daten sind reine Zeichenfolgen. Das bedeutet, dass die onChange Funktion einige moment Objekte und einige Zeichenfolgen findet. Ich muss wissen, welche Eingänge moment Objekte sind und welche nicht.

Was ist die empfohlene Methode zum Testen, ob eine Variable ein moment Objekt ist?

Ich habe bemerkt, moment Objekte haben eine _isAMomentObject Eigenschaft, aber ich frage mich, ob es eine andere Möglichkeit gibt zu testen, ob eine Variable ein moment Objekt ist.

Eine andere Option, die ich ausprobiert habe, ruft moment auf der Variablen unabhängig. Dies konvertiert die string Variablen in moment Objekte und scheint keine vorhandenen moment Objekte zu beeinflussen.

+4

Ich stimme für das Schließen dieser Frage als Off-Topic, weil die [Antwort in der offiziellen Dokumentation] (http://momentjs.com/docs/#/query/is-a-moment/) ist. – Mathletics

+0

Trotz mehrerer Suchen hatte ich das @Mathletics nicht gesehen. Wie Jared Smith darauf hingewiesen hat, ist es irgendwie in den Dokumenten vergraben. –

+1

@Mathletics Ich fand es tatsächlich durch Durchsuchen des Quellcodes, dann war in der Lage, die Dokumente für den Link zu steuern. Google war keine Hilfe (was ich mir vorstellen kann, war das, was die Frage an erster Stelle veranlasste), dies ist wohl eine eher suchmaschinenfreundliche Ressource (und daher wohl wert, für die Nachwelt aufzugeben). –

Antwort

38

Moment eine isMoment method hat nur für einen solchen Zweck. Es ist nicht besonders einfach, in den Dokumenten zu finden, wenn Sie nicht wissen, wonach Sie suchen sollen.

Zuerst prüft es instanceof und dann wird das fehlschlagen (zum Beispiel in bestimmten Unterklassen oder bereichsübergreifende Situationen) wird es für die _isAMomentObject Eigenschaft testen.

17

Sie überprüfen können, ob es sich um ein instanceof Moment ist:

moment() instanceof moment; // true 
+4

Nur wenn die Instanz und das Moment selbst im selben Fenster sind. – JAAulde

+0

Guter Punkt, ich nahm den einfachsten Fall an. –

Verwandte Themen