Answers:
AngularJS表单元素寻找required执行验证功能的属性。ng-required允许您required根据布尔测试设置属性(例如,仅要求字段B- 例如,学生编号 -如果字段A具有特定值- 如果您选择“学生”作为选择)
作为一个例子,<input required>而<input ng-required="true">在本质上是一样的东西
如果您想知道为什么这样做(而不仅是make <input required="true">或<input required="false">),那是由于HTML的局限性-该required属性没有关联的值-根据HTML标准,它仅仅是存在的意思(根据HTML标准)-因此,角度需要一种设置/取消所需值的方法(required="false"将是无效的HTML)
<form method="post" action="/foo" novalidate>。同样,这是html5属性,与angularJS不相关。
ng-required指向范围/控制器变量时,Angular会监视它的更改并相应地设置所需的属性。在使用简单HTML required属性的情况下,您没有这种灵活性。没有?当我们处于同一主题时,那又如何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等效)
该角属性 ng-required="yourCondition"手段“isRequired(yourCondition)”,并设置HTML属性动态您根据您的病情进行。
还要注意的是HTML版本是混乱,这是不是可以写东西像条件required="true"或者required="false",只有属性问题的存在(目前的手段真)!这是Angular帮助您解决问题的地方ng-required。