javascript - 如何在 AngularJS $rootScope 事件监听器中应用状态转换?

标签 javascript angularjs angular-ui-router angular-http-auth

我目前在使用 angular-http-auth 时遇到问题处理来自 event:auth-loginRequired 事件的状态转换的库。我正在使用angular-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 无效/过期”。然而,状态转换根本不起作用,我的控制台上也没有收到任何错误。我尝试过使用 $location.path('/login'),但它也不起作用。

有人可以帮我解决问题吗?非常感谢任何形式的帮助。谢谢!

最佳答案

[更新 - 已解决]

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

再次感谢您对我的帮助!

关于javascript - 如何在 AngularJS $rootScope 事件监听器中应用状态转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36327144/

相关文章:

移动设备上本地 SQLite 的 javascript 客户端

javascript - 按值合并数组中的对象并获取每个对象的计数

angularjs - 如何删除angular js中找不到文件的错误

AngularJS。 ui-view 包含在 ng-view 中

javascript - jQuery Flot : Set width of chart (without labels)

javascript - 从 Rails 的集合中返回选定的值并将其发送到 URL

javascript - AngularJS http.get() 访问 json 会破坏 Controller

javascript - AngularJS $resource 成功和错误回调

javascript - AngularJS CORS 请求自定义 header

javascript - 更新、导航和 $scope.$apply() 后,Angular $scope 未绑定(bind)到 View