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

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

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

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

2 ответа

Решение

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

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

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

Пример:

<input type="text" maxlength=5>

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

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

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

Другие вопросы по тегам