Eckige 2 - Wie automatisch binden Objekt-Werte bezogen auf die Formular-Steuerelemente?
Ich bin mit model driven forms
und ich bin auf der Suche eine bessere Möglichkeit die Daten zu binden Bezug auf formControlName
's, weil ich mehr als 25 Felder auf meinem Formular, und ich will nicht zu haben, um zu schreiben, dass code für alle Felder wie ich geschrieben habe für unten.
Vorlage:
<input type="text"
class="form-control"
formControlName="firstName"
name="firstName"
placeholder="First Name"
required>
Komponente:
this.refferalService.getReferringDataEdit(id).subscribe(
result => {
this.referringData = result.responseObject;
this.refferalForm.patchValue({
firstName: this.referringData.firstName
})
}
)
Gibt es einen Weg, es zu tun "automatisch"?
InformationsquelleAutor Hitesh | 2017-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kannst du es so machen :
Später in Ihrem HTML-verwenden Sie es wie :
und binden Sie es mit (ngSubmit) . Also, Wann immer Sie trifft den reichen , den Wert, der sich in myForm.Wert . myForm wird das Formular gespeichert werden als Schlüssel/Wert-Paaren.
In der Konsole Ausgabe :
Finden Sie unter : http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/
EDIt: Da die Anforderung war, die Daten zu speichern aus dem Dienst:
In Ihrem abonnieren, nur tun Sie dies :
this.refferalForm.setValue(this.referringData);
setValue erwartet ein Objekt mit den Schlüssel/Wert-Paarein Ihrem abonnieren, Nur tun Sie dies : diesem.refferalForm.setValue(dies.referringData); setValue erwartet ein Objekt mit den Schlüssel/Wert-Paaren .
Ich bin mit ngx-mydatepicker für Datums-Auswahl, und ich oben verwendet.refferalForm.patchValue(dies.referringData) binden Daten, aber es wird nicht von bind date. Irgendeine Idee, wie zu binden, Datum?
InformationsquelleAutor CruelEngine
Ich sehe zwei Möglichkeiten, dies zu tun:
Erster Ansatz:
Könnten Sie eine Allgemeine Methode, die für beide "Formen" (neu/Bearbeiten), und erstellen Sie das Formular mit oder ohne der Werte, auf diese Weise:
DEMO
Zweiter Ansatz:
In diesem Ansatz können Sie binden Sie es automatisch mit
[(ngModel)]
, so brauchen Sie nicht, nichts zu tun in der Komponente Datei.Und in Vorlage verwenden [(ngModel)], um binden die Werte:
DEMO
Prüfen Sie die vollständigen Quellen für beide Ansätze vor.
Hinweis:
Obwohl es gibt nichts irgendwo zu sagen, dass Sie nicht verwenden können beide
FormsModule
mitReactiveFormsModule
ist, würde ich nicht gehen mit diesem, ich würde lieber die erste Methode zu verwenden.InformationsquelleAutor developer033
Zu binden oder ersetzen Sie den dynamischen Wert Wert fromControl, wir können patchValue Methode.
InformationsquelleAutor Rohit Parte