ERROR Fehlende Nummer an Position 0 bei Verwendung von setValue winkel 4

9

Ich verwende Angular 4 mit reaktiven Formen, momentjs und primeng kalender Ich verbinde setValue und probiere patchValue auf a reactiveForm-Feld, das ein Date enthält. Dieses Datum wurde über einen Primeng Kalender erstellt.

purchaseDate: Sat Sep 02 2017 00:00:00 GMT+0100 (GMT Daylight Time)

Ich benutze dieses "Datum", um ein paar Dinge zu tun, und dann amSumbit des Formulars wandle ich das Datum mit momentjs in ein sauberes Format um das Backend zu akzeptieren (zB YYYY.MM.DD) mit .moment().format(....

Aber wenn ich .setValue starte, bekomme ich den folgenden Konsolenfehler ERROR Missing number at position 0 und kann nicht herausfinden warum.

%Vor%

Ich habe das Problem bis zu dem Punkt verfolgt, an dem ich versuche, den Primeng-Kalenderwert zu setzen / zu patchen - aus irgendeinem Grund möchte ich nicht geändert werden.

UPDATED Monent-Format

Das Problem tritt auf, wenn setValue jetzt den folgenden Fehler anzeigt Unexpected literal at position 2 at viewWrappedDebugError

    
fidev 05.09.2017, 09:16
quelle

2 Antworten

3

Die Sache ist, dass der PrimeNG-Datumswähler erwartet, dass er die Instanz von Date class als Wert erhält und die Instanz einer Date -Klasse als Wert zurückgibt. Deshalb sind deine Versuche fehlgeschlagen, Objekte anderer Typen dorthin zu legen.

Es ist nicht klar, warum Sie versuchen, setValue() im Submit-Handler aufzurufen.

Wenn Sie Wert programmgesteuert ändern möchten, folgen Sie dem Vorschlag von VincenzoC in Kommentaren - ändern Sie das Objekt und transformieren Sie es zurück in Date object, bevor Sie es an setValue() übergeben.

%Vor%

Wenn Sie Date object für das Senden an das Backend formatieren möchten, müssen Sie setValue() überhaupt nicht aufrufen. Formatieren Sie Date object in string und übergeben Sie diese Zeichenfolge anstelle von Date object an die Back-End-API. Wenn Sie das gesamte Objekt value aus dem Formular senden, können Sie es vor dem Senden folgendermaßen ändern:

%Vor%     
Yaroslav Admin 09.09.2017, 14:10
quelle
0

Ich hatte ein ähnliches Problem und bemerkte, dass ich versucht habe, PrimeNG Datum in falscher Reihenfolge zu geben:

%Vor%

War in meinem Fall so einfach.

    
hardfi 14.02.2018 11:46
quelle