Angular 2, setze den Wert von Texteingaben in Form

8

Also ich probiere ein paar Angular 2 aus und ich mag es so weit. Aber ich brauche Hilfe, um diese neue Landschaft zu navigieren.

Ich habe ein Formular, um eine Benutzerdetails und eine Liste auf der Seite mit allen meinen Benutzern zu bearbeiten. Wenn ich auf einen der Benutzer in der Liste klicke, möchte ich mein Bearbeitungsformular mit den Benutzerdetails füllen (setEditForm (user)).

Ich habe es funktioniert und alles. Aber ich muss sagen, es ist nicht richtig, ngControl und ngModel gleichzeitig zu verwenden. Aber vielleicht ist es ...

Ist das der richtige Weg, um das zu tun, oder habe ich nur ein bisschen Glück, damit es funktioniert?

%Vor%     
mottosson 11.03.2016, 20:57
quelle

1 Antwort

12

Sicher können Sie ngControl / ngFormControl und ngModel gleichzeitig verwenden. Aus der Angular2-Dokumentation ( Ссылка ):

  
  • bidirektionale Datenbindung mit der Syntax [(ngModel)] zum Lesen und Schreiben von Werten in Eingabesteuerelemente

  •   
  • Verwenden von ngControl zum Verfolgen des Änderungsstatus und der Gültigkeit von Formularsteuerelementen

  •   
  • zeigt Validierungsfehlern für Benutzer an und aktiviert / deaktiviert Formularsteuerelemente

  •   
  • Teilen von Informationen zwischen Steuerelementen mit lokalen Vorlagenvariablen

  •   

Kurz gesagt, ich würde ngModel verwenden, wenn ich eine bidirektionale Bindung benötige, und ngForm / ngFormControl , wenn ich eine Validierung benötige, aber beide mischen können.

Wenn Sie nur Werte und Benachrichtigungen benötigen, wenn die Eingabewerte aktualisiert werden, reicht ngControl / ngFormControl '...

Beide erlauben es, Änderungen zu erkennen:

  • Ereignis ngModelChange
  • Abonnieren Sie ctrl.valueChanges

Sie können eine bidirektionale Bindung für ngModel für Ihre Formularelemente konfigurieren:

%Vor%     
Thierry Templier 11.03.2016 21:57
quelle