Я написал простой валидатор, сравнивающий два элемента управления формой даты в группе форм.
Простая проверка: maturityDate должно быть> 100 * * valueDate , если не недействительнымгруппа форм.
Ниже приведено определение группы форм:
this.datesForm = this._fb.group(
{
tradeDate: [new Date(), Validators.required],
valueDate: [new Date(), Validators.required],
maturityDate: [new Date(), [Validators.required]],
dayCount: [{value: 0, disabled: true}, Validators.required]
},
{
validator: validateMaturityDate
}
);
А вот мой валидатор.ts
import { AbstractControl } from '@angular/forms';
export function validateMaturityDate(datesForm: AbstractControl) {
const valueDate: Date = datesForm.get('valueDate').value;
const maturityDate: Date = datesForm.get('maturityDate').value;
if (maturityDate <= valueDate) {
datesForm.setErrors({ 'validMaturity': true });
} else {
datesForm.setErrors({ 'validMaturity': false });
}
return;
}
Если я выберу дату погашения из указателя даты, предшествующую дате валютирования, я ожидал бы, что группа форм будет недействительной.Но это не тот случай, он продолжает действовать в обоих случаях.Я что-то не так делаю?
https://i.stack.imgur.com/KzRJg.png https://i.stack.imgur.com/KEM1v.png