我一直在尋找爲Angularjs後退按鈕事件實例加載,但沒有一個例子已經工作了我。無論何時按下瀏覽器後退按鈕,我的代碼都不會收到事件。現在我一直在撓頭。Angularjs歷史後退按鈕不工作
所有我想要做的就是得到一個警告,詢問用戶確認他們要回去和適度寬鬆的所有數據。
下面是我一直在努力的代碼。它是來自其他例子的副本,但具有完整的代碼。
我已經嘗試使用$範圍,而不是$ rootscope添加$上的控制器,我曾嘗試在routechangestart手錶,似乎沒有趕上後退按鈕。
是否有人有一個完整的小例子,或者告訴我什麼,我做錯了什麼?
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
}
});
});
我用的HTML代碼如下:
<!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>
本文將幫助:http://weblogs.asp.net/dwahlin/cancelling-route-navigation-in-angularjs – Nix