Addieren Sie Control dynamisch zur Formgruppe Angular 5


77

Der Versuch, meiner formGroup in Angular dynamisch einen neuen formControl-Eintrag hinzuzufügen.

method() {
  this.testForm.addControl('new', ('', Validators.required));
}

Kann das gemacht werden?



Wie Siro Ihre Frage beantwortet hat, können Sie die addControl-Methode verwenden, um Ihrer Formulargruppe neue Eingaben hinzuzufügen. Ich habe ein kleines Projekt, das dynamische Formen studiert hat. Ich hoffe was nützlich ist. stackblitz.com/edit/angular-eypxbq?embed=1&file=src/app/…
Michael Charles

Antworten:


161

Sicher, aber die zweiten Parameter sollten eine FormControl-Instanz sein. Etwas wie:

this.testForm.addControl('new', new FormControl('', Validators.required));

Sie können die Validatoren auch dynamisch hinzufügen, wenn Sie dies mit der setValidatorsMethode möchten .

Weitere Informationen finden Sie hier: https://angular.io/api/forms/FormGroup#addControl


36

Wenn Sie FormBuilderfür Ihr Formular verwenden, können Sie dies auch zum Hinzufügen eines Steuerelements verwenden:

constructor(private fb: FormBuilder) { }
    
method() {
  this.testForm.addControl('new', this.fb.control('', Validators.required));
}

1

einfache Verwendung:

  this.testForm.addControl('new', this.fb.group({
      name: ['', Validators.required]
    }));
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.