2017-04-23 6 views
1

で、それが宣言した後、あなたがsetValue方法、またはpatchValue方法とFormControlまたはFormGroupを更新することができます更新バリFormControl

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

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

答えて

1

を使用する場合は、新しいバリデータ(複数可)を設定したい場合は、setValidatorsを使用することができます後で、価値と妥当性を更新したい場合は、updateValueAndValidityで実行することもできます。ここでは簡単な例です:

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

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

Demo

そして、あなたは、フィールドの値を更新したい場合は、として使用patchValueを言及することができます。

+0

あなたが提案したようにsetValidatorsを使用しました。ありがとうございました –

+0

私は助けてくれることを嬉しく思います! :) – Alex

0

のように、コントロールを更新する方法はあります。あなたの場合、setValueを使用する方が良いです。

patchValueは、フォームをオブジェクトで更新し、そのオブジェクトにフォームよりも多くのプロパティが含まれている場合(つまり、フォームにプロパティが存在しないことを意味します)、patchValueを使用すると、フォームに存在します。この場合、setValueを使用すると、エラーが発生します。このような多くの質問については、その常に最高のあなたは(私はここで説明することができます何よりも方法の詳細を持っている)のドキュメント

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

関連する問題