Javascript 如何在angularjs中单击后退按钮停止页面刷新

Javascript 如何在angularjs中单击后退按钮停止页面刷新,javascript,angularjs,Javascript,Angularjs,HTML: Angularjs应用程序是单页应用程序,所以back不应该刷新页面。虽然我假设存在的URL中存在“#”,因此可以覆盖window.location.onhashchange事件。ui路由器在转换后不会跟踪上一个状态,但当状态更改时,$stateChangeSuccess事件将在$rootScope上广播 您应该能够从该事件中捕获先前的状态(从是您要离开的状态) 是否正在使用$state?window.history.back()启动浏览器从无法控制的历史记录(其API定义的调用)转

HTML:


Angularjs应用程序是单页应用程序,所以back不应该刷新页面。虽然我假设存在的URL中存在“#”,因此可以覆盖window.location.onhashchange事件。

ui路由器在转换后不会跟踪上一个状态,但当状态更改时,$stateChangeSuccess事件将在$rootScope上广播

您应该能够从该事件中捕获先前的状态(从是您要离开的状态)


是否正在使用
$state
window.history.back()
启动浏览器从无法控制的历史记录(其API定义的调用)转到上一页。顺便问一下,你的期望是什么?正如@dreamweiver所说的,这永远不会奏效。此外,如果要防止默认设置,则必须将其传递给函数:
goBack($event)
如果使用的是
$state
,则在
$state.go
中执行
{reload:false}
<button type="button" class="btn btn-success btn-sm" ng-click="goBack($event);"> 
   Back
</button>
$scope.goBack = function ($event) {
   window.history.back();
   $event.preventDefault();
   $event.stopPropagation();
}
$rootScope.$on('$stateChangeSuccess', function (event, toState,
   toParams, from, fromParams) {
       $rootScope.previousState = from.name;
       $rootScope.currentState = to.name;
});