2016-04-06 18 views
32

Moja aplikacja ma formularz HTML z niektórymi wejściami wypełnionymi z zaplecza i innymi wejściami wprowadzanymi przez użytkownika (na wejściu time). Funkcja onChange przechodzi przez każde wejście, gdy użytkownik zmienia wartość.Jak sprawdzić, czy zmienna jest obiektem Moment.js?

Dane wejściowe wypełnione z zaplecza są konwertowane na obiekty moment, daty wprowadzone przez użytkownika są tylko ciągami. Oznacza to, że funkcja onChange napotyka pewne obiekty i niektóre ciągi. Muszę wiedzieć, które wejścia są obiektami moment, a które nie.

Jaka jest zalecana metoda testowania, czy zmienna jest obiektem moment?

Zauważyłem, że obiekty moment mają właściwość _isAMomentObject, ale zastanawiam się, czy istnieje inny sposób sprawdzenia, czy zmienna jest obiektem moment.

Inną opcją, którą wypróbowałem, jest wywołanie moment na zmiennej niezależnie. Przekształca zmienne string w obiekty moment i nie wpływa na istniejące obiekty moment.

+4

Głosuję, aby zamknąć to pytanie jako nietypowe, ponieważ [odpowiedź znajduje się w oficjalnej dokumentacji] (http://momentjs.com/docs/#/query/is-a-moment/). – Mathletics

+0

Pomimo kilku wyszukiwań nie widziałem tego @Mathletics. Jak zauważył Jared Smith, jest to trochę pochowane w dokumentach. –

+1

@Mathletics Znalazłem go, przeglądając kod źródłowy, a następnie udało mi się kontrolować dokumenty dla tego łącza. Google nie stanowił żadnej pomocy (co, jak sobie wyobrażam, było przede wszystkim tym pytaniem), jest to prawdopodobnie bardziej przyjazny dla wyszukiwarek zasób (a więc prawdopodobnie warty zostania dla potomności). –

Odpowiedz

38

Moment ma isMoment method tylko dla takiego celu. Nie jest szczególnie łatwo znaleźć w dokumentach, chyba że wiesz, czego szukać.

Najpierw sprawdza się instanceof, a następnie w razie niepowodzenia (na przykład w pewnych sytuacjach podklasowych lub międzygwiazdowych) testuje dla właściwości _isAMomentObject.

17

Można sprawdzić, czy jest to instanceof chwila:

moment() instanceof moment; // true 
+4

Tylko jeśli sama instancja i moment znajdują się w tym samym oknie. – JAAulde

+0

Dobrze, zakładałem najbardziej prosty przypadek. –

Powiązane problemy