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

Schreibe einen Kommentar