Почему Angular обеспечивает ng-maxlength, когда существует стандартная максимальная длина?
HTML предоставляет стандартный атрибут maxlength начиная с версии 4.01.
Angular предоставляет директиву ng-maxlength.
Отличие состоит в том, что стандартный подход не позволяет вводить больше, чем max, тогда как метод Angular просто генерирует ошибку проверки.
Почему они решили включить такую директиву? Это не из-за динамического связывания данных maxlength, поскольку поведение несовместимо. Это не из-за совместимости, поскольку она доступна даже в HTML 4.01. Моя единственная догадка заключается в том, что там есть альтернативная парадигма валидации, но это звучит как чрезмерная инженерия.
Ответы
Ответ 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
.