2017-06-17 2 views
0

Ich verwende reaktive Formulare in einer Angular-Anwendung. Ich habe 2 Felder, eines ist ein Select (named Client) und das andere eine Eingabe (named clientCode), die aktualisiert werden muss, wählt der Benutzer einen neuen Client.Eingabefeld nicht aktualisiert in Reaktive Formulare Winkel 4

<select formControlName="client"> 
      <option value="">Client</option> 
      <option *ngFor="let item of data.clients" [value]="item.value">{{ item.value }}</option> 
      </select> 
      <input type="text" formControlName="clientCode" placeholder="Client Code" value="{{ clientCode$ | async }}"> 

Ich valueChanges über Client, so dass, wenn der Benutzer einen Client ich den Code erhalten zu diesem Client zugeordnet ist, und es gibt ihn als eine beobachtbare (clientCode $), die dann den Eingabewert aktualisiert.

Dies funktioniert in meinem Bildschirm, wie der ClientCode angezeigt wird, aber das Formular selbst wird nicht aktualisiert. Nur wenn ich in das Eingabefeld klicke und etwas eintippe wird aktualisiert.

Gibt es eine Möglichkeit, das zu beheben?

Dank

+0

bewegen '{{clientCode $}}' von 'value = 'nach innen innerhalb Eingangs-Tags helfen könnten:' {{clientCode $ }} '. Schließen Sie Ihr Eingabefeld möglicherweise auch: '' oder '' –

Antwort

3

Um Steuerungsmodell zu aktualisieren, erfolgreich können Sie ngModel Eigenschaft statt value verwenden.

Es könnte wie folgt aussehen:

[ngModel]="clientCode$ | async" 

Plunker Example

+1

@ r0b3rt0 Das ist gut, dass Sie die Dokumentation lesen, aber bitte schreiben Sie keine Kommentare, wenn Sie nicht wissen, wie es geht funktioniert. In meinem Fallbeispiel habe ich sogar FormsModule nicht importiert. ngModel ist nur '@ Input' für reaktiven FormControlName – yurzui

Verwandte Themen