Взято эту форму в качестве примера http://plnkr.co/edit/fHEBw6dDdG3IVgnmCLb7?p=preview
Как я могу поставить состояние $pristine
формы в true после нажатия кнопки SAVE DRAFT
?
AngularJs представляет форму и reset $первозданное состояние
Ответ 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();
};
Ответ 2
Я заметил, что reset()
не очистит ввод электронной почты, если он не действителен.
Вместо этого я попробовал другой подход:
<button type="reset" ng-click="form.$setPristine()">RESET</button>
<button ng-click="update(user); form.$setPristine()">SAVE</button>