Ich habe mir viele Beispiele für das Angularjs Back Button-Ereignis angesehen, aber keines der Beispiele hat sich für mich bewährt. Immer wenn die Zurück-Taste des Browsers gedrückt wird, erhält mein Code das Ereignis nicht. Ich kratze mich seit Tagen am Kopf.Angularjs History Zurück-Taste funktioniert nicht
Alles, was ich tun möchte, ist eine Warnung erhalten, die fragt, ob der Benutzer sicher ist, dass sie zurückgehen und alle ihre Daten verlieren möchten.
Unten ist der Code, den ich versucht habe. Es ist eine Kopie von anderen Beispielen, aber mit komplettem Code.
Ich habe versucht, die $ auf in den Controller mit dem $ Scope anstelle von $ rootscope hinzuzufügen, habe ich versucht, auf routechangestart zu beobachten, nichts scheint die Schaltfläche zurück zu fangen.
Hat jemand ein komplettes kleines Beispiel oder sag mir, was ich falsch mache?
var BackButtonTest = angular.module('BackButtonTest', ['ngRoute']);
BackButtonTest.controller('backbuttonCtrl', function($scope, $location, $route) {
});
BackButtonTest.run(function($rootScope, $route, $location){
//Bind the $locationChangeSuccess event on the //rootScope, so that we don't need to
//bind in induvidual controllers.
$rootScope.$on('$locationChangeSuccess', function() {
$rootScope.actualLocation = $location.path();
});
$rootScope.$watch(function() {
return $location.path()
}, function (newLocation) {
if($rootScope.actualLocation === newLocation) {
// run a function or perform a reload
}
});
});
Der HTML-Code, den ich verwendet habe, ist wie folgt:
<!doctype html>
<html lang="en" ng-app="BackButtonTest">
<head>
<meta charset="utf-8">
<title>BackButtonTest App</title>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular-route.min.js"></script>
<script src="app.js"></script>
<body ng-controller="backbuttonCtrl as bbc">
<div class="container-fluid">
<div class="row">
<div class="col-md-8 col-md-push-2">
Some random text
</div>
</div>
</div>
</body>
</html>
Dieser Artikel helfen: http://weblogs.asp.net/dwahlin/cancelling-route-navigation-in-angularjs – Nix