AngularJs представляет форму и reset $первозданное состояние

Взято эту форму в качестве примера http://plnkr.co/edit/fHEBw6dDdG3IVgnmCLb7?p=preview
Как я могу поставить состояние $pristine формы в true после нажатия кнопки SAVE DRAFT?

Ответ 1

Вы можете вызвать $setPristine в form: 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

Ответ 2

Я заметил, что reset() не очистит ввод электронной почты, если он не действителен. Вместо этого я попробовал другой подход:

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