В чем разница между required
и ng-required
(проверка формы)?
В чем разница между требуемым и требуемым ng?
Ответ 1
Элементы формы AngularJS ищут атрибут required
для выполнения функций проверки. ng-required
позволяет вам установить атрибут required
в зависимости от логического теста (например, требуется только поле B - скажем, номер студента - если поле A имеет определенное значение - если вы выбрали "ученик" в качестве выбора )
В качестве примера, <input required>
и <input ng-required="true">
, по существу, одно и то же
Если вам интересно почему, то это (а не просто сделать <input required="true">
или <input required="false">
), это связано с ограничениями HTML - атрибут required
не имеет связанное значение - это простое средство присутствия (в соответствии со стандартами HTML), которое требуется для этого элемента - поэтому angular нужен способ установить/удалить требуемое значение (required="false"
будет недействительным HTML)
Ответ 2
Я хотел бы добавить аддон для ответ tiago:
Предположим, что вы скрываете элемент с помощью ng-show
и добавляете атрибут required
на то же:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
выдает ошибку:
Недопустимое управление формой с помощью name= '' не фокусируется
Это потому, что вы просто не можете наложить required
валидацию на элементы hidden
. Использование ng-required
упрощает условно применять требуемую проверку, которая просто потрясающая!!
Ответ 3
Атрибут HTML required="required"
- это оператор, указывающий браузеру, что это поле необходимо для того, чтобы форма была действительной. (required="required"
является формой XHTML, просто используя required
эквивалентно)
Атрибут Angular ng-required="yourCondition"
означает "isRequired (yourCondition)" и устанавливает для вас атрибут HTML динамически в зависимости от вашего состояния.
Также обратите внимание, что версия HTML запутывает, возможно не писать что-то условное, например required="true"
или required="false"
, только наличие атрибута имеет значение (настоящее означает true)! Здесь Angular поможет вам с ng-required
.