Angular2: wie auf ein formControl Wert auf eine verschachtelte formBuilder form
Wie bekomme ich den Wert von this.resFormGroup.patientName.lastname.value
ohne Verwendung [ngModel]
?
Was sind der Zweck der name="resForm"
, [formGroup]="resFormGroup"
und #resNgForm="ngForm"
im HTML - <form>
tag?
Brauche ich die Vorlage Referenzvariable #resNgForm
da habe ich die [formGroup]="resFormGroup"
?
Dies ist meine Komponente:
//FormBuilder
this.resFormGroup = this.formBuilder.group({
patientName: this.formBuilder.group({
firstname: ['', Validators.required],
lastname: ['', Validators.required]
}),
address: this.formBuilder.group({
street: [],
zip: [],
city: []
})
});
Dies ist meine Vorlage:
<form name="resForm" [formGroup]="resFormGroup" (ngSubmit)="onSubmit()" #resNgForm="ngForm">
<fieldset formGroupName="patientName">
<legend>Name</legend>
<label>Firstname:</label>
<input type="text" formControlName="firstname" [(ngModel)]="myFirstName">
<label>Lastname:</label>
<input type="text" ***formControlName="lastname"***>
</fieldset>
<fieldset formGroupName="address">
<legend>Address</legend>
<label>Street:</label>
<input type="text" formControlName="street">
<label>Zip:</label>
<input type="text" formControlName="zip">
<label>City:</label>
<input type="text" formControlName="city">
</fieldset>
<button type="submit" class="btn btn-primary" [disabled]="!resNgForm.valid">Submit</button>
Mein submit-button:
onSubmit() {
console.log("Submit button pressed [ngModel: " + this.myFirstName + "] [Form: " + this.resFormGroup.controls["patientName"].dirty + "]");
}
Mit [ngModel]
ich den ersten Namen, ich kann auch auf den dirty
Attribut des formGroup
's patientName
.
Ich dachte, und versucht, dies ohne Glück. console.log("Geschachtelte form Wert: [" +.resFormGroup.controls["patientName"].controls["lastname"].Wert + "]");
InformationsquelleAutor Autorun | 2016-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf diesem tutorial über dynamische form,, Sie verwendet eine sehr einfache Art und Weise zu zeigen, die Werte des ganzen bilden, ohne [ngModel].
Wie man den formBuilder form Werte? Die Antwort ist diese.myForm.Wert'.
Beispiel-code
Beispiel:
Wie sieht es in der web-Konsole
InformationsquelleAutor Autorun