В чем разница между requiredи ng-required(проверка формы)?
В чем разница между requiredи ng-required(проверка формы)?
Ответы:
Элементы формы AngularJS ищут requiredатрибут для выполнения функций проверки. ng-requiredпозволяет вам установить requiredатрибут в зависимости от логического теста (например, требуется только поле B - скажем, номер студента - если поле A имеет определенное значение - если вы выбрали «студент» в качестве выбора )
Как пример <input required>и <input ng-required="true">по сути одно и то же
Если вам интересно, почему это так (а не просто make <input required="true">или <input required="false">), это связано с ограничениями HTML - requiredатрибут не имеет ассоциированного значения - его простое присутствие означает (согласно стандартам HTML), что элемент необходим - поэтому angular нужен способ установить / отменить требуемое значение ( required="false"будет недействительным HTML)
<form method="post" action="/foo" novalidate>. Опять же, это атрибут html5, не связанный с angularJS.
ng-requiredуказатель на переменную области / контроллера, Angular отслеживает ее изменения и соответственно устанавливает требуемый атрибут. Хотя в случае простого requiredатрибута HTML у вас нет такой гибкости. Нет? И пока мы на одну тему, о чем ng-attr-required? Это точно так же, как ng-required?
Я хотел бы сделать дополнение для ответа Тиаго :
Предположим, вы скрываете элемент, используя ng-showи добавляя requiredатрибут к нему:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
выдаст ошибку что-то вроде:
Неверный элемент управления формы с именем = '' не может быть сфокусирован
Это потому, что вы просто не можете навязать requiredпроверку hiddenэлементам. Использование ng-requiredупрощает условное применение требуемой проверки, что просто потрясающе !!
ng-ifвместо ng-show/ ng-hideчтобы обойти эту потенциальную проблему.
Атрибут HTML required="required" является заявление сообщая браузеру , что это поле , необходимое для того , чтобы формы , чтобы быть действительным. ( required="required"это форма XHTML, просто использование requiredэквивалентно)
ANGULAR атрибут ng-required="yourCondition" означает «требуется копаться (yourCondition)» и устанавливает атрибут HTML динамически для вас в зависимости от вашего состояния.
Также отметим , что HTML - версия путает , это не возможно , чтобы написать нечто условное , как required="true"и required="false", только при наличии вопросов атрибутов (присутствующих означает истинный)! Здесь Angular поможет вам ng-required.