Как применить переход состояния внутри прослушивателей событий 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 браузера все еще есть токен. Мне очень жаль за вопрос.

Еще раз спасибо за попытку помочь мне!

Другие вопросы по тегам