Как применить переход состояния внутри прослушивателей событий AngularJS $rootScope?
В настоящее время я сталкиваюсь с проблемой использования библиотеки angular-http-auth, которая обрабатывает переход состояния от событий события: auth-loginRequired. Я использую https://github.com/angular-ui/ui-router для своих систем маршрутизации.
В любом случае вот некоторые фрагменты кода из библиотеки, которые генерируют события:
case 401:
var deferred = $q.defer();
httpBuffer.append(config, deferred);
$rootScope.$broadcast('event:auth-loginRequired', rejection);
return deferred.promise;
И я ловил события с этими частями кода в myApp.run
$rootScope.$on('event:auth-loginRequired', function(){
console.log('Token Invalid / Expired');
$state.transitionTo('login');
});
Я смог получить "Token Invalid / Expired" внутри моей консоли. Однако переход состояния не работал вообще, и на моей консоли также не было ошибок. Я пытался использовать $ location.path ('/ login'), но он тоже не работает.
Может кто-нибудь, пожалуйста, помогите мне с решениями? Любая помощь очень ценится. Спасибо!
1 ответ
[ОБНОВЛЕНИЕ - РЕШЕНО]
Извините, я думаю, что нашел решение, оно не из-за того, что переход не работает внутри событий Angular, но я был настолько глуп, что сам обрабатывал event.preventDefault() всякий раз, когда приложение пыталось перенаправить в состояние входа (который я пытался перенаправить, когда приложение ловит события), если в файлах cookie браузера все еще есть токен. Мне очень жаль за вопрос.
Еще раз спасибо за попытку помочь мне!