У меня есть приложение 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);
});
});
}