ReactiveForms
モジュールを使用してカスタムバリデーターを使用するフォームを管理するAngular 2 アプリケーションがあります。バリデータはFormControl
オブジェクトを受け取ります。FormControl
バリデーターに渡されたときにフィールドの名前を知っていれば、同じカスタムバリデーターを使用できるいくつかの入力フィールドがあります。
FormControl
入力フィールドの名前を公開するメソッドまたはパブリック プロパティが見つかりません。もちろん、その値を確認するのは簡単です。以下は、私がそれをどのように使用したいかを示しています。
public asyncValidator(control: FormControl): {[key: string]: any} {
var theFieldName = control.someMethodOfGettingTheName(); // this is the missing piece
return new Promise(resolve => {
this.myService.getValidation(theFieldName, control.value)
.subscribe(
data => {
console.log('Validation success:', data);
resolve(null);
},
err => {
console.log('Validation failure:', err);
resolve(err._body);
});
});
}