Wie werden Datumsfelder von einer REST API in AngularJS gehandhabt?

8

Ich habe eine REST-API, die JSON-Daten mit Datumsangaben im ISO-8601-Standardformat zurückgibt: JJJJ-MM-TTTHH: MM: SS:

%Vor%

Mein Problem ist, dass ich mir in AngularJS nicht ganz sicher bin, wie ich damit umgehen soll. Ich habe ein $resource , das GETs, POSTs, usw. meine API Endpunkte, aber wenn meine Daten zurückgegeben werden, wird es in meinem JS-Objekt als String gespeichert. Ich denke, es wäre einfacher, als Date () oder Moment () zu behandeln.

In Java kann ich mit JsonDeserializer sicherstellen, dass alle JSON-Daten richtig konvertiert werden, bevor sie dem Modell zugewiesen werden, aber ich weiß nicht, ob es in AngularJS einen ähnlichen Mechanismus gibt.

Ich habe gesucht, kann aber nichts finden, was eine generalisierte Lösung implementiert. Ich weiß, dass ich eine Funktion transformResponse in meinem $resource verwenden kann, aber das scheint für jeden Datentyp, der ein Datum enthalten kann, eine Menge wiederholter Konfiguration zu sein.

Dies führt mich zu der Frage, ob die Rückgabe des Datums in einem ISO-8601-Format der beste Weg ist, um fortzufahren? Wenn AngularJS es nicht out of the box unterstützt, gehe ich davon aus, dass es einen einfacheren Weg geben muss, mit Daten umzugehen. Wie geht man mit Daten in AngularJS um? Sollte ich sie nur als Text / String-Objekte behandeln und die API eine vorformatierte Version zurückgeben lassen? Wenn ja, welches Format haben Sie am flexibelsten in einem HTML5-Eingabefeld?

    
Eric B. 21.08.2014, 00:27
quelle

1 Antwort

10

JSON unterstützt keine Daten, daher müssen Sie Datumsangaben als Zeichenfolgen oder Ganzzahlen senden und bei entsprechender Verwendung in Datumsobjekte konvertieren. Angular tut das nicht für Sie, aber Sie können eine default transformResponse Funktion auf $httpProvider definieren. Ich habe das mit $resource probiert und es wirkt sich auch darauf aus, denn $resource ist eine Abstraktion auf höherer Ebene für $http .

Wenn Sie die Struktur Ihres JSON nicht kennen oder sich nicht darauf in der Konvertierungsfunktion verlassen wollen, müssen Sie nur date-like Strings in Date-Objekte konvertieren und

konvertieren %Vor%

Abhängig von Ihrer Anwendung kann dies aus Performance-Sicht unklug sein (z. B. nur eine Handvoll JSON-Antworten enthalten Datumsangaben oder benötigen tatsächlich die zu konvertierenden Daten). Daher empfiehlt es sich, die Daten in diesen Controllern zu konvertieren .

    
vesse 21.08.2014 01:48
quelle

Tags und Links