Winkel 2 setzt null als leeren Stringwert für das Eingabefeld

8

Ich habe ein Eingabefeld, das einer Entität in meinem Controller zugeordnet ist, mit einer ngModel 2-Wege-Bindung.

%Vor%

Wenn ich meinen Controller initialisiere, habe ich diese Entität:

%Vor%

Wenn ein Benutzer anfängt, das Feld auszufüllen, aber das Formular nicht sofort abschickt und das Feld leert, wird meine Entität aktualisiert:

%Vor%

Ist es möglich zu definieren, dass die leere Zeichenkette automatisch auf null geändert werden soll?

    
jobou 22.07.2016, 13:19
quelle

3 Antworten

11

Nachdem ich eine Reihe von Antworten zu ValueAccessor und HostListener solutions gesehen habe, habe ich eine funktionierende Lösung (getestet mit RC1) erstellt:

%Vor%

Dann benutze es so auf deinen Eingabefeldern:

%Vor%     
jobou 29.03.2017, 12:53
quelle
3

Ich habe gerade diese Lösung nach viel Forschung gebildet. Es ist eine Art hacky da das Angular-Team die Erweiterung von DefaultValueAccessor nicht empfiehlt, aber es automatisch funktioniert für jede Eingabe, ohne sie einzeln markieren zu müssen.

%Vor%

Das funktioniert hervorragend bei Angular 4.4.5.

    
Taylor Buchanan 19.10.2017 17:24
quelle
-2

Ich habe es global gemacht. Aber es ist nicht 100%. Ich konnte nicht die Methode finden, wo Winkel 4 JSON.Stringify auf dem Körper aufrufen. Ich hoffe, hier könnte jemand helfen. Bis der neue HttpClient in 4.3 aus ist, verwende ich weiterhin eine Wrapper-Klasse für den HTTP-Dienst. Ich mache das, weil in Angular2 und forward keine Interzeptoren vorhanden waren. Mein Wrapper sieht ungefähr so ​​aus.

%Vor%

So weit, so gut. Aber ich habe keine gute transformRequest wie in AngularJS gefunden, also habe ich transformEmptyStringAsNull wie folgt implementiert:

%Vor%

Ich weiß, dass es auf die Art hässlich ist, dass ich einen zusätzlichen String machen werde, um wieder zu analysieren. Aber im Rest der Anwendung muss ich nichts tun.

    
Jens Alenius 04.08.2017 08:41
quelle

Tags und Links