Подтвердить что ты не робот

Почему Angular обеспечивает ng-maxlength, когда существует стандартная максимальная длина?

HTML предоставляет стандартный атрибут maxlength начиная с версии 4.01. Angular предоставляет директиву ng-maxlength.

Отличие состоит в том, что стандартный подход не позволяет вводить больше, чем max, тогда как метод Angular просто генерирует ошибку проверки.

Почему они решили включить такую ​​директиву? Это не из-за динамического связывания данных maxlength, поскольку поведение несовместимо. Это не из-за совместимости, поскольку она доступна даже в HTML 4.01. Моя единственная догадка заключается в том, что там есть альтернативная парадигма валидации, но это звучит как чрезмерная инженерия.

4b9b3361

Ответ 1

Не только он обеспечивает проверку для максимальной длины, но также добавляет класс ng-invalid-maxlength. поэтому, когда вы ставите что-либо за пределы ng-invalid-maxlength, класс будет помещен туда и в этом классе вы можете написать свой собственный css.

Таким образом, после нажатия клавиши, если проверка не выполняется, css будет вызываться одновременно и будет отображаться в пользовательском интерфейсе.

Ответ 2

Предыдущий ответ может быть верным в более ранних версиях angular, но по состоянию на сегодняшний день и angular v1.5.5, похоже, что maxlength выполняет то же самое, что и ng-maxlength, но также обеспечивает ввод входов HTML maxlength на входах текста типа.

Пример:

<input type="text" maxlength=5>

maxlength будет вводить на вход максимум 5 символов, а также добавить правильный правильный класс проверки angular.

В то время как ngMaxlength будет только обеспечивать проверку. См.: https://docs.angularjs.org/api/ng/directive/ngMaxlength

Совет: Просто используйте maxlength.