Javascript 如何在AngularJS$rootScope事件侦听器中应用状态转换?

Javascript 如何在AngularJS$rootScope事件侦听器中应用状态转换?,javascript,angularjs,angular-ui-router,angular-http-auth,Javascript,Angularjs,Angular Ui Router,Angular Http Auth,我目前在使用库时遇到一个问题,该库正在处理从事件的状态转换:auth loginRequired。我正在使用我的路由系统 无论如何,下面是库中发出事件的一些代码: case 401: var deferred = $q.defer(); httpBuffer.append(config, deferred); $rootScope.$broadcast('event:auth-loginRequired', rejection); return deferred.

我目前在使用库时遇到一个问题,该库正在处理从事件的状态转换:auth loginRequired。我正在使用我的路由系统

无论如何,下面是库中发出事件的一些代码:

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');
});
我能够在我的控制台中获取“令牌无效/过期”。然而,状态转换根本不起作用,我的控制台上也没有任何错误。我尝试过使用$location.path('/login'),但它也不起作用

有人能帮我解决问题吗?非常感谢您的任何帮助。谢谢

[更新-已解决]

抱歉,我想我已经找到了解决方案,这不是因为转换在Angular events内部不起作用,,但我太愚蠢了,以至于我自己在应用程序尝试重定向到登录状态时都有一个event.preventDefault()处理(当应用程序捕获事件时,我正试图重定向该状态)如果浏览器的cookie中仍有令牌。我很抱歉问你这个问题

再次感谢你试图帮助我

[更新-已解决]

抱歉,我想我已经找到了解决方案,这不是因为转换在Angular events内部不起作用,,但我太愚蠢了,以至于我自己在应用程序尝试重定向到登录状态时都有一个event.preventDefault()处理(当应用程序捕获事件时,我正试图重定向该状态)如果浏览器的cookie中仍有令牌。我很抱歉问你这个问题


再次感谢你试图帮助我

尝试使用
$state.go
而不是
$state.transitionTo
。我相信这是一样的,但它默认设置了一些参数。谢谢你的回复!我也尝试过,但仍然不起作用:(尝试使用
$state.go
而不是
$state.transition
。我相信这是一样的,但它默认设置了一些参数。感谢您的响应!我也尝试过,但仍然不起作用:(