角度RC4他のFormControlsまたはFormGroupの状態に基づいてバリデーションを追加および削除する方法。これは、複数のバリデータを設定するために.composeを使用する例 - では、このポストAngular2 validator which relies on multiple form fieldsangular2バリデーション:コントロールの現在のバリデーターを見つける
に基づいて
。それは
this.form.controls["empID"].validator = Validators.compose([Validators.pattern("[0-9]{7}"), Validators.required]);
this.form.controls["empID"].updateValueAndValidity();
私の問題は、私はFormControl見つけることができないです(.addをまたは.remove)現在の検証(一度に1バリ)を変更するValidator.compose
新しいあなたとの既存のバリデータに置き換えられます。 Validators.requiredを追加/削除する場合は、現在のバリデータ(別の問題)を取得し、新しい.composeにrequireを追加/削除する必要があります。 (上記の例)私はこのプロセスを熟考しています。バリデーターを動的に追加するには、すべてのバリデーターがわかっていなければなりません。
最後に、コントロールを渡して別のコントロールがチェックされているかどうか評価し、それに応じてバリデータを適用/削除します。