表单提交后会弹出未保存的更改 - AngularJS

时间:2017-02-16 08:27:33

标签: angularjs forms

当我提交登录表单并在成功验证后重定向到另一个页面时,我会弹出一个表示我有未保存的更改。我相信只有在您将更改保存到表单时重定向到另一个页面才能显示此弹出窗口。

我尝试调用表单的$setPrestine()$setUntouched()函数,并将模型设置为null,但弹出窗口仍显示。

我该如何妥善处理?感谢

更新

我发现问题是由我正在进行的项目中使用的角度模块(角度敏捷性)引起的。经过大量的追踪后,我找到了解决方案。

1 个答案:

答案 0 :(得分:1)

你有各种类

  

NG-原始,NG-脏   如果对它们执行操作,它将应用于输入

您可以了解并相应地使用。 read this

<script>
  angular.module('formExample', [])
    .controller('FormController', ['$scope', function($scope) {
      $scope.userType = 'guest';
    }]);
</script>
<style>
 .my-form {
   transition:all linear 0.5s;
   background: transparent;
 }
 .my-form.ng-invalid {
   background: red;
 }
</style>
<form name="myForm" ng-controller="FormController" class="my-form">
  userType: <input name="input" ng-model="userType" required>
  <span class="error" ng-show="myForm.input.$error.required">Required!</span><br>
  <code>userType = {{userType}}</code><br>
  <code>myForm.input.$valid = {{myForm.input.$valid}}</code><br>
  <code>myForm.input.$error = {{myForm.input.$error}}</code><br>
  <code>myForm.$valid = {{myForm.$valid}}</code><br>
  <code>myForm.$error.required = {{!!myForm.$error.required}}</code><br>
 </form>

现在你可以看到有各种方法可以做到这一点。
好好看看并申请。快乐编码!!

  

或者您可以参考此answer