У меня есть приложение Angular 2, которое использует модуль ReactiveForms
для управления формой, использующей настраиваемый валидатор. Валидатор получает объект 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);
});
});
}