Да, проблема в том, что фокус выходит из-под контроля ввода и переходит в календарь. Если вы используете только кнопку по умолчанию в качестве триггера для открытия палитры дат, то с этой проблемой вы не столкнетесь. Но, как и то, что вы сделали, иногда лучше добавить триггер (focus)
или (click)
. Я могу думать только об одной работе вокруг.
Начните с удаления начальных валидаторов из вашего поля. Затем помещайте обработчик всякий раз, когда средство выбора даты материала было закрыто, например:
<mat-datepicker #fechaPlantacion (closed)="close()"></mat-datepicker>
и в методе close вы должны динамически устанавливать валидаторы:
close() {
this.fechaPlantacion.setValidators(Validators.required);
this.fechaPlantacion.updateValueAndValidity(null);
}
Таким образом, проверка будет добавлена только после выбора (или не выбора ничего) из дат в календаре. Я также попытался использовать ввод readonly
и все еще работал нормально после тестирования на моей локальной машине.