117

動的に構築されたフォームを持つコンポーネントがあります。バリデーターを使用してコントロールを追加するコードは、次のようになります。

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

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

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

しかし、新しいバリデータまたはカスタムバリデータを追加する方法は明確ではありません。

4

7 に答える 7

152

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

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

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

これにより、 を作成したときに追加した既存のバリデータがリセットされることに注意してくださいFormControl

Angular 12 の更新

Angular 12 以降、既存のバリデーターを削除せずにフォームに新しいバリデーターを追加する場合は、次を使用できますaddValidator

this.form.controls["firstName"].addValidators([Validators.minLength(1), Validators.maxLength(30)]);
于 2016-08-05T20:47:01.027 に答える