需要和ng-required有什么区别?

Tid*_*eer 275 required angularjs

requiredng-required(表单验证)之间有什么区别?

Tia*_*dão 415

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)

  • 我不确定我理解这个问题.在实践中,你从不使用ng-required ="true",而是使用ng-required ="scopedVariable"或ng-required ="scopeTruthTest()",以及变量/函数确定元素是否是必需的.永远不要使用jquery在角度应用程序中弄乱这些东西,否则你将得到不可预测的结果! (28认同)
  • 事实并非如此.不确定,但我认为你所指的是html5验证,这是大多数现代浏览器自动执行的.如果你想控制它(禁用浏览器的功能)你可以添加属性novalidate:`<form method ="post"action ="/ foo"novalidate>`.同样,这是一个html5属性,与angularJS无关. (2认同)

I_D*_*ing 77

我想为蒂亚戈的回答制作一个插件:

假设您使用隐藏元素ng-showrequired在其上添加属性:

<div ng-show="false">
    <input required name="something" ng-model="name"/>
</div>
Run Code Online (Sandbox Code Playgroud)

会抛出一个类似的错误:

名称=''的无效表单控件不可聚焦

这是因为您无法对元素进行required验证hidden.使用ng-required更容易有条件地应用所需的验证,这真是太棒了!!

  • 绝对是一个很好的提示,你也可以使用`ng-if`代替`ng-show` /`ng-hide`来回避这个潜在的问题. (11认同)

Chr*_*ssy 17

HTML属性 required="required"是告诉这个字段以所需的形式是有效的浏览器的声明.(required="required"是XHTML表单,只是使用required是等效的)

角属性 ng-required="yourCondition"的意思是"isRequired(yourCondition)",并设置HTML属性动态您根据您的病情进行.

还要注意的是HTML版本是混乱的,它是不是可以写东西像条件required="true"或者required="false",只有属性的问题(目前指真)的存在!这是Angular帮助您的地方ng-required.