Может ли AngularJS прослушивать $locationChangeSuccess при обновлении?
Я слушаю $ locationChangeSuccess
в Angular с помощью этого кода:
$scope.$on('$locationChangeSuccess', function(event) {
console.log('Check, 1, 2!');
});
Однако при входе в новую ссылку он войдет в консоль только в том месте, где это место изменилось. Естественно, это имеет смысл. Мой вопрос: как я могу сделать Angular для прослушивания $locationChangeSuccess
в случае обновления страницы?
Ответы
Ответ 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
, который вызывается непосредственно перед тем, как окно выгрузит его ресурсы (обновить).