检查表单中AngularJS的更改

时间:2015-07-31 06:53:27

标签: angularjs

我有一个使用AngularJS构建的HTML页面。该页面包含一个包含许多字段的表单。 我有一个保存,返回和取消按钮。当您单击后退按钮时,我希望能够判断是否已对该字段进行了更改并提示问题"是否要保存更改?"。 如果单击“取消”按钮,我想忽略所做的任何更改并返回上一页。如何在Angular中实现这一目标?

1 个答案:

答案 0 :(得分:0)

你可以使用" $ locationChangeStart" https://docs.angularjs.org/api/ng/service/ $位置

$scope.$on('$locationChangeStart', function(event, newURL) {
        if (newURL.lastIndexOf("#/") >= 0) {
            $scope.locationToMove = newURL.substring(newURL.lastIndexOf("#/") + 1); // here you can store the location to move for future use
        } else {
            $scope.locationToMove = "/";
        }
        if ($scope.form.$dirty && !goToBack && !saved) {
            $scope.displayConfirmationModel = true; // any alerts you want to show here
            event.preventDefault();
        }
        else {
            // you can move to that location
        }
    });

如果你可以检查任何变化条件,它只是我给出的例子。您可以对任何位置更改执行此操作,但如果要在取消或返回按钮上执行此操作,则可以在按钮单击方法上使用相同的条件并检查更改。如果表单字段是脏的。