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