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?

JoeSmith
quelle
das könnte auch helfen: stackoverflow.com/questions/55334283/…
Lonely
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

Siro
quelle
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));
}
AJT82
quelle
1

einfache Verwendung:

  this.testForm.addControl('new', this.fb.group({
      name: ['', Validators.required]
    }));
Trilok Singh
quelle