Javascript AngularJS能否在刷新时侦听$locationChangeSuccess?
我正在使用以下代码收听Angular中的$Javascript AngularJS能否在刷新时侦听$locationChangeSuccess?,javascript,angularjs,Javascript,Angularjs,我正在使用以下代码收听Angular中的$locationChangeSuccess: $scope.$on('$locationChangeSuccess', function(event) { console.log('Check, 1, 2!'); }); 但是,当我导航到新链接时,它只会在控制台中记录位置已更改。当然,这是有道理的。我的问题是,如果我刷新页面,如何让Angular侦听$locationChangeSuccess?您可能希望在窗口上有一个侦听器。onbeforeunl
locationChangeSuccess
:
$scope.$on('$locationChangeSuccess', function(event) {
console.log('Check, 1, 2!');
});
但是,当我导航到新链接时,它只会在控制台中记录位置已更改。当然,这是有道理的。我的问题是,如果我刷新页面,如何让Angular侦听
$locationChangeSuccess
?您可能希望在窗口上有一个侦听器。onbeforeunload
在窗口卸载其资源之前被调用(刷新).您无法从控制器中注册,因为$locationChangeSuccess发生在路由匹配和控制器调用之前。在您注册时,事件已被触发
但是,您可以在应用程序引导阶段订阅$rootScope上的事件:
var app = angular.module('app', []);
app.run(function ($rootScope) {
$rootScope.$on('$locationChangeSuccess', function () {
console.log('$locationChangeSuccess changed!', new Date());
});
});
回答得很好。我想我会选择斯莱的,只是因为它看起来很有棱角。不过,我还是非常感谢你的帮助!我怀疑这是否有效,因为当URL由Angular处理时,页面不会刷新。角度“替换”当前页面的内容。没有重新加载,因此没有窗口。onbeforeunload我不知道返回什么样的参数?是否有方法可以在
$locationChangeSuccess
的函数中获取URL中传递的状态参数$stateParams
打印时返回空值