2017-02-16 60 views
0

当我成功验证后提交登录表单并重定向到另一个页面时,弹出窗口提示我有未保存的更改。我相信这个弹出窗口应该只显示你是否重定向到另一个页面而不保存你的更改到表单。避免表单提交后弹出未保存的更改 - AngularJS

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

我该如何妥善处理?由于

UPDATE

我发现,这个问题是由在我工作的项目中使用的角度模块(角敏捷)引起的。我在做了很多跟踪之后找到了解决方案。

+0

你的意思是保存更改到窗体。你的意思是更新数据库,即后端!对?? –

+0

我实际上并没有在这里保存任何东西,因为我只是进行身份验证,然后重定向到我的主页,如果身份验证成功。但是,当我尝试重定向到我的主页时,弹出一个问题,询问我是否真的想导航一个因为我有未保存的更改弹出。 – Rian

+0

@manishkumar我的意思是保存您在表单中所做的更改。 – Rian

回答

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

+0

对不起,我发现这个问题是由我的项目中使用的角度模块(角度敏捷性)造成的。我在做了很多跟踪之后找到了解决方案。无论如何感谢您的时间:) – Rian

+0

您可以发布答案。至少有其他谁有同样的问题可能会发现它有用。 –

+0

会做。谢谢。 – Rian