Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS能否在刷新时侦听$locationChangeSuccess?_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS能否在刷新时侦听$locationChangeSuccess?

Javascript AngularJS能否在刷新时侦听$locationChangeSuccess?,javascript,angularjs,Javascript,Angularjs,我正在使用以下代码收听Angular中的$locationChangeSuccess: $scope.$on('$locationChangeSuccess', function(event) { console.log('Check, 1, 2!'); }); 但是,当我导航到新链接时,它只会在控制台中记录位置已更改。当然,这是有道理的。我的问题是,如果我刷新页面,如何让Angular侦听$locationChangeSuccess?您可能希望在窗口上有一个侦听器。onbeforeunl

我正在使用以下代码收听Angular中的$
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
打印时返回空值