У меня есть управляемая шаблоном форма, в которой есть элемент управления вводом, который мне нужно проверить с помощью пользовательского валидатора относительно значения свойства в моей модели (которое изменяется динамически в зависимости от выбора из выпадающего списка).Он прекрасно работает всякий раз, когда я набираю элемент управления вводом, но я бы хотел, чтобы проверка происходила также при изменении значения свойства (без необходимости изменения значения в поле ввода).Есть ли способ добиться этого ??
Ниже приведена урезанная версия модели, разметки и используемого мной средства проверки
Модель:
amountToInvest: number = null;
public onAccountSelectionChanged(event): void {
// find the account based on the selection from this drop down list
this.availableFunds = account.AvailableFunds;
}
Разметка
<form name="form" (ngSubmit)="myForm.form.valid && onSubmit()" >
<input type="number" [(ngModel)]="amountToInvest"' [customMax]="availableFunds">
Валидатор
@Directive({
selector: '[customMax][formControlName],[customMax][formControl],[customMax][ngModel]',
providers: [{provide: NG_VALIDATORS, useExisting: CustomMaxDirective, multi: true}]
})
export class CustomMaxDirective implements Validator {
@Input()
customMax: number;
validate(c: FormControl): {[key: string]: any} {
let v = c.value;
return ( v > this.customMax)? {"customMax": true} : null;
}