Вы можете получить объект ошибки из валидаторов min / max следующим образом:
<mat-hint align="end">{{ contactForm.get('formControlDescription')?.errors.maxlength?.actualLength }} / {{ contactForm.get('formControlDescription')?.errors.maxlength?.requiredLength }} </mat-hint>
немного более чистая версия:
<mat-hint align="end">
{{ contactForm.errors?.formControlDescription?.maxlength?.actualLength}} /
{{ contactForm.errors?.formControlDescription?.maxlength?.requiredLength}}
</mat-hint>
Официальная документация по maxLength Validator
Обновить
Значения валидаторов angular станут доступны вам только тогда, когда валидатор сработает и отобразится как недействительный.
Например, если у вас есть minLength(10)
, он даст вам недопустимый ввод в момент прикосновения и до тех пор, пока символы не станут или больше 10. То же самое для maxLength(20)
, оно будет доступно только в объекте errors
после его запуска, т.е. пользователь имеет тип более 20 символы.
Это представляет проблему, если вы собираетесь использовать actualLength
и requiredLength
для последовательного отображения статистики пользователю, поскольку они будут отображаться только тогда, когда значение minLength
или maxLength
недопустимо.
Как уже говорилось, лучшим подходом для вас будет использование отдельной переменной для установки и отображения требуемой длины. Например:
const validatorOptions = {
maxLength: 5000,
minLength: 5
}
затем в своем шаблоне используйте его:
<mat-hint align="end">{{ contactForm.controls.formControlDescription?.value.length }} / {{validatorOptions.maxLength}}</mat-hint>
person
Metabolic
schedule
08.11.2020
html
? Это жестко запрограммировано. - person Daniel Danielecki   schedule 08.11.2020