AngularJs提交表单并重置$ pristine状态

时间:2013-12-10 09:45:22

标签: forms angularjs

以此形式为例http://plnkr.co/edit/fHEBw6dDdG3IVgnmCLb7?p=preview
在按下$pristine按钮后,如何将表单的SAVE DRAFT状态设置为true?

2 个答案:

答案 0 :(得分:23)

您可以在form$setPristine

上致电http://plnkr.co/edit/wXaFXtuhNH6d4SP2uArm?p=preview
<button ng-click="reset(); form.$setPristine()">RESET</button>
<button ng-click="update(user); form.$setPristine()">SAVE</button>

或者您可以在控制器中调用该方法(确保表单存在后):

  $scope.update = function(user) {
    $scope.master= angular.copy(user);
    if ($scope.form) $scope.form.$setPristine();
  };

  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
    if ($scope.form) $scope.form.$setPristine();
  };

演示:http://plnkr.co/edit/Mau7uuDfPlzcn418OdWh?p=preview

答案 1 :(得分:1)

我注意到reset()除非有效,否则不会清除电子邮件输入。 我尝试了另一种方法:

<button type="reset" ng-click="form.$setPristine()">RESET</button>
<button ng-click="update(user); form.$setPristine()">SAVE</button>