2016-08-05 14 views
10

動的に構築されたフォームを持つコンポーネントがあります。バリでコントロールを追加するコードは、この角度コントロールが作成された後、FormControlにバリデータを追加する方法は?

var c = new FormControl('', Validators.required); 

のように見える。しかしのは、私は、後に第2回バリを追加したいとしましょうかもしれません。どうすればこれを達成できますか?私たちはこのオンライン上のドキュメントを見つけることができません。フォームコントロールにsetValidatorsがありますが、私は見つけました

this.form.controls["firstName"].setValidators 

新しいカスタムバリデーターを追加する方法は不明です。

ありがとうございます。

答えて

20

FormControlにバリデータの配列を渡すだけです。ここで

では、既存のFormControlにバリデータを追加する方法を示す例です:

this.form.controls["firstName"].setValidators([Validators.minLength(1), Validators.maxLength(30)]); 

注、これはあなたがFormControlを作成したときに追加、既存のバリデータをリセットします。

+3

...時々あなたは何かを見て、ちょうど逃げるのが一番です。ありがとうございました!! – melegant

+0

喜んで助けてください:) – Delosdos

+0

これは私が長い間修正しようとしていた問題を本当に解決しました。共有のためのトンをありがとう! – Devner

6

@Delosdosが投稿した内容に追加する。

設定FormGroupにおける制御のためのバリデータ: this.myForm.controls['controlName'].setValidators([Validators.required])

FormGroupでコントロールからバリデータを削除します。 this.myForm.controls['controlName'].clearValidators()

更新 FormGroupをあなたはどちらか実行した後、上記の行のうち、 this.myForm.controls['controlName'].updateValueAndValidity()

これは、フォーム検証をプログラムで設定する素晴らしい方法です。

関連する問題