Angularjs setPristine不起作用

时间:2014-11-11 15:16:56

标签: javascript angularjs

我想做一件简单的事情,清理$ scope.user字段而不是因为这个而得到错误。

if ($scope.contactForm.$valid) {
    $scope.user = {};
    $scope.contactForm.$setPristine();                   
  }
}

但是我仍然会看到所需的验证错误,如果我没有任何错误,他会告诉我所有错误。

这里是plunker:

http://plnkr.co/edit/skCdwwTuMVY1fVBNpuQd?p=preview

1 个答案:

答案 0 :(得分:0)

试试这个:

 $scope.submitted = true;
 if ($scope.contactForm.$valid) {
   $scope.submitted = false;
   $scope.user = {};
   $scope.contactForm.$setPristine();                   
 }

您的示例的问题是checkError函数依赖于提交的标志。如果表单有效,则可以清除提交的标志以隐藏错误。