2017-04-23 5 views
1

gibt es eine Möglichkeit, die Kontrolle zu aktualisieren, nachdem es, wieUpdate-Validatoren in Formcontrol

erklärte
this.input = new FormControl('', Validators.required) 
this.form = this.formBuilder.group({ 
    input = this.input 
}) 

this.input.update('', Validators.maxlength(20)) 

Antwort

1

Sie können setValidators verwenden, wenn Sie neuen Validator gesetzt werden sollen (en) Zu einem späteren Zeitpunkt möchten Sie wahrscheinlich auch den Wert und die Gültigkeit aktualisieren, es kann mit updateValueAndValidity ausgeführt werden. Hier ist ein einfaches Beispiel:

this.myForm.controls.input.setValidators([Validators.required, 
              Validators.minLength(4)]); 

this.myForm.controls.input.updateValueAndValidity(); 

Demo

Und wenn Sie den Feldwert zu aktualisieren, Sie können, wie die oben genannten Verwendung patchValue.

+0

Ich habe SetValidators wie Sie vorgeschlagen, danke –

+0

Sie sind herzlich willkommen, froh, ich könnte helfen! :) – Alex

0

Sie eine Formcontrol oder FormGroup mit der setValue Weise aktualisieren, oder der patchValue Methode. In Ihrem Fall ist es besser, setValue zu verwenden.

Was ist patchValue ist, wenn Sie Ihr Formular mit einem Objekt aktualisieren möchten, und das Objekt enthält mehr Eigenschaften als das Formular (was bedeutet, dass einige Eigenschaften nicht im Formular vorhanden sind), mit PatchValue wird nur die Werte erhalten existieren auf dem Formular, und in diesem Fall, wenn Sie setValue verwenden, wird ein Fehler auftreten. Für weitere Fragen wie diese, es ist immer am besten, wenn Sie die Dokumentation verwenden (die Art und Weise mehr Details als das, was ich hier erklären kann)

https://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html

Verwandte Themen