Подтвердить что ты не робот

Может ли AngularJS прослушивать $locationChangeSuccess при обновлении?

Я слушаю $ locationChangeSuccess в Angular с помощью этого кода:

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

Однако при входе в новую ссылку он войдет в консоль только в том месте, где это место изменилось. Естественно, это имеет смысл. Мой вопрос: как я могу сделать Angular для прослушивания $locationChangeSuccess в случае обновления страницы?

4b9b3361

Ответ 1

Вы не можете зарегистрироваться в контроллере, потому что $locationChangeSuccess возникает до того, как маршрут будет согласован и контроллер будет вызван. Когда вы зарегистрируетесь, событие уже было запущено.

Однако вы можете подписаться на событие на $rootScope во время фазы начальной загрузки приложения:

var app = angular.module('app', []);
app.run(function ($rootScope) {
    $rootScope.$on('$locationChangeSuccess', function () {
        console.log('$locationChangeSuccess changed!', new Date());
    });
});

Ответ 2

Вероятно, вам нужен прослушиватель window.onbeforeunload, который вызывается непосредственно перед тем, как окно выгрузит его ресурсы (обновить).