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 に答える