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
。