我有一个使用AngularJS构建的HTML页面。该页面包含一个包含许多字段的表单。 我有一个保存,返回和取消按钮。当您单击后退按钮时,我希望能够判断是否已对该字段进行了更改并提示问题"是否要保存更改?"。 如果单击“取消”按钮,我想忽略所做的任何更改并返回上一页。如何在Angular中实现这一目标?
答案 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
}
});
如果你可以检查任何变化条件,它只是我给出的例子。您可以对任何位置更改执行此操作,但如果要在取消或返回按钮上执行此操作,则可以在按钮单击方法上使用相同的条件并检查更改。如果表单字段是脏的。