我想为AngularJS添加一些小功能。 它是关于表单验证的。 让我们假设我有一个表格。 我填写它并将填充的对象发送到服务器。 服务器使用此对象进行了一些操作,并确定了标题'字段不正确。 服务器返回有关无效标题的消息(让我们假设只能在服务器上进行此验证以避免客户端验证解决方法)。
我以编程方式添加了新的无效错误。 ($ scope.myForm.title。$ setValidity(' bad',false)); 我有.ng-invalid-bad类,用红色边框标记我的标题字段。 好。 我更改标题并将此对象发送到服务器。 但此时我的描述'值与标题,服务器答案和描述中的错误冲突'。 所以现在我必须重置所有字段的所有有效性,并添加新的' bad'有效性的描述'领域。但我没有找到重置所有字段的整个表单的功能。 我尝试了$ setPristine和其他人,但是字段仍然存在“无效 - 不好”的情况。类。只有当我为每个字段调用$ setValidity(' bad',true)时,我才能删除它。
我为本功能在本地副本中为angular.js做了一些更新。
问题: 1.我是否会错过有关此功能的文档内容? 2.如果不是 - 我可以开始使用此功能准备我的PR角度吗?
example: http://plnkr.co/edit/aev16Y3cAxTljhctUDMI
答案 0 :(得分:0)
如果您需要重置表单中的所有字段,只需在表单中添加一个重置按钮即可。
<!DOCTYPE html>
<html ng-app="formValidationApp">
<head>
<script src="https://code.angularjs.org/1.4.0-beta.2/angular.js" data-semver="1.4.0-beta.2" data-require="angular.js@1.4.0-beta.2"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="controllers.root">
<form name="superform" novalidate>
<input name="title" ng-model="superObject.title" />
<br/>
<input name="description" ng-model="superObject.description" />
<br/>
<input type="reset" />
<button ng-click="go()">go!</button>
</form>
</body>
</html>