Javascript 通过更新$scope模型更正条目后清除角度形式验证

Javascript 通过更新$scope模型更正条目后清除角度形式验证,javascript,angularjs,Javascript,Angularjs,我有一个领域: <input type="text" class="form-control" name="username" ng-model="user.username" ng-minlength="3" ng-maxlength="20" required ng change="checkUsername()"> <p ng-show="username_taken" class="help-block">This username is taken. &l

我有一个领域:

<input type="text" class="form-control" name="username" ng-model="user.username" ng-minlength="3" ng-maxlength="20" required ng change="checkUsername()">
<p ng-show="username_taken"  class="help-block">This username is taken.  
<a href="javascript:void(0);" ng-click="suggestUsername()">Shall we suggest one?</a></p>

此用户名已被使用。

在用户单击suggestUsername()后,将调用suggestUsername()函数,并使用唯一的用户名填充用户名($scope.user.username),这将更新模型,但表单验证$valid状态未清除

更新表单模型后,如何让angular重新验证表单

谢谢你的帮助

对表单调用$setPristine()

例如:

您的html:

<form name="yourFormName" id="form" novalidate>
   <!-- your form controls here -->
</form>

表单。$setPristine将表单设置为初始未验证状态,请尝试。Thx-由于某些原因不起作用$scope.userSignup.$setValidity()$scope.userSignup.$setPristine();由于某种原因,Thx不起作用<代码>$scope.userSignup.$setValidity()$scope.userSignup.$setPristine()你的意思是,表单输入控件样式仍然表明表单无效?我在$scope中声明表单模型后,它就工作了<代码>ng min导致模型对象在满足其条件之前无法实例化,我猜我在测试中没有处理这些条件。
// set to pristine, ONLY clears CSS styling, etc...
$scope.yourFormName.$setPristine();

// update your model values as well