В моем приложении AngularJS я перенаправляю route
на определенную страницу, когда пользователь не вошел в систему. Для этого я использую переменную $rootScope
.
Теперь я хотел бы предотвратить кнопку «Назад» браузера, когда пользователь вошел в систему. Я хотел бы перенаправить его на определенную страницу (представление registration
). Проблема в том, что я не знаю, есть ли событие кнопки "Назад".
Мой код:
angular.module('myApp',[...]
//Route configurations
}])
.run(function($rootScope, $location){
$rootScope.$on('$routeChangeStart', function(event, next, current){
if(!$rootScope.loggedUser) {
$location.path('/register');
}
});
$rootScope.$on('$locationChangeStart', function(event, next, current){
console.log("Current: " + current);
console.log("Next: " + next);
});
});
Итак, на $locationChangeStart
я бы написал псевдокод, например:
if (event == backButton){
$location.path('/register');
}
Является ли это возможным?
Наивным решением было бы написать функцию, которая проверяет, находятся ли next
и current
в неправильном порядке, определяя, возвращается ли пользователь назад.
Есть другие решения? Я неправильно подхожу к проблеме?