20

我正在locationChangeSuccess使用以下代码在 Angular 中收听 $:

$scope.$on('$locationChangeSuccess', function(event) {
  console.log('Check, 1, 2!');
});

但是,它只会在我导航到新链接时登录位置已更改的控制台。自然,这是有道理的。我的问题是,如果我刷新页面,如何让 Angular 监听? $locationChangeSuccess

4

2 回答 2

37

您不能从控制器内注册,因为 $locationChangeSuccess 发生在路由匹配和调用控制器之前。当您注册时,该事件已经被触发。

但是,您可以在应用程序引导阶段订阅 $rootScope 上的事件:

var app = angular.module('app', []);
app.run(function ($rootScope) {
    $rootScope.$on('$locationChangeSuccess', function () {
        console.log('$locationChangeSuccess changed!', new Date());
    });
});
于 2013-04-25T00:12:27.133 回答
6

您可能需要一个侦听window.onbeforeunload器,在窗口卸载它的资源(刷新)之前调用它。

于 2013-04-24T19:17:06.167 回答