Почему 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
,