2012-09-25 5 views
5

Ich habe eine harte Zeit, die Triaden Schienen + angularjs + jQuery Datepicker arbeiten zusammen.jQuery datepicker + Schienen 3.2.8 + AngularJS: zeigen und beharren Datumsausgabe

Das erste Problem ist mit der Anzeige des Datums aus dem Backend. Wenn die UI Daten vom Backend anfordert, erhält sie irgendwann die folgenden Sachen in JSON Notation.

Die entsprechenden Felder sind "inizio" und "in Ordnung" (jeweils Start- und Enddatum).

Rails Zeitzone ist auf Europa/Rom eingestellt.

Datumsauswahl der Optionen sind auf: {Datumsformat: ‚TT/MM/JJ‘}

So ich das Eingabefeld des „inizio“ date zu zeigen, erwartet: 01.05.2012 sondern stattdessen Ich komme zurück: 24.03.2018.

Ändern der Datumsformat Option 'yy-mm-dd' zeigt das richtige Datum, aber mit unerwünschten Separator und Format (2012-05-01) ...

Was aber hinter den Kulissen geschieht, ist dass das angezeigte Objekt wird etwas manipuliert und wird wie folgt aus:

{"id":1,"ragione_sociale":"FrigoCaserta srl","indirizzo":"Strada provinciale Gricignano d'Aversa","cap":"81030","citta":"Gricignano d'Aversa","provincia":"CE","partita_iva":"1234","codice_fiscale":null,"tipo_contratto":"Orario","costo":"0.0","inizio":"2012-04-30T22:00:00.000Z", ... 

Notiere die „inizio“ -Feld nun von „2012-05-01“ bis „2012-04-30T22: 00: 00.000Z“ umgewandelt wird

Jetzt, wenn ich das Formular an das Backend alles einreichen g geht belly up, da rails den neuen Wert für "inizio" wie vom Datepicker formatiert erhält. Da das Datenbankfeld nur ein Datum ist, verschwinden die Informationen über die Zeit und es bleibt nur das (falsche) Datum im Modell erhalten.

Ich bin mir bewusst, dass datepicker Lokalisierungsoptionen hat, aber ich kann nichts Zeitzone finden, die ich ändern könnte, um dieses unerwünschte Verhalten zu beheben.

Ich dachte, ich könnte Attribute im Backend-Modell verwenden, um die Informationen aus der Benutzeroberfläche zu analysieren, aber ich mag diesen Ansatz nicht.

Was ist die beste Vorgehensweise, wenn es um all das geht?

Ich habe StackOverflow ähnliche Fragen ohne Glück durchlaufen.

Vielen Dank im Voraus für Ihre Hilfe.

+0

Nach ein paar Stunden kämpfen, löste ich endlich das Geheimnis. Natürlich war es ein Fehler von mir, es ist mir völlig aus den Augen gefallen, dass "die ui-date-Anweisung speichert und erwartet, dass der Modellwert ein Standard-JavaScript-Date-Objekt ist". Ich habe Datumsfelder als Zeichenfolgen übergeben. – CarmineM74

+0

Also, was hast du getan, um sicherzustellen, dass die Felder Daten und keine Zeichenfolgen sind? – igreulich

+0

Ich habe einfach die erfolgreiche Antwort vom Backend in meinem angularjs-Dienst abgefangen und String-Repräsentationen durch Date-Instanzen ersetzt. – CarmineM74

Antwort