gpt4 book ai didi

javascript - 让 $routeProvider 监听 $rootscope.$broadcast

转载 作者:行者123 更新时间:2023-11-29 20:03:33 31 4
gpt4 key购买 nike

我已将此模块添加到我的应用程序中:https://github.com/witoldsz/angular-http-auth/blob/gh-pages/lib/http-auth-interceptor.js

它会在 401 响应时广播一条消息,非常方便!只是不确定如何让我的 $routeProvider 监听 $rootscope.$broadcast。我想重定向到 401 时的登录页面。

我的 $routeProvide 看起来像这样:

var app = angular.module('demoApp', ['http-auth-interceptor','tastypieModule'])
.config(function($routeProvider) { $routeProvider.
when('/', {controller:HomeCrtl, templateUrl:'partials/home.html'}).
when('/sign-in', {controller:SiginInCtrl, templateUrl:'partials/sign-in.html'}).
otherwise({redirectTo:'/'});
})

最佳答案

您不会让您的 $routeProvider 监听它。您只需在 Controller 中监听它,然后使用 $location 将您的应用程序发送到适当的路由。

app.controller('MainAppCtrl', function($scope, $rootScope, $location) {
$rootScope.$on('event:auth-loginConfirmed', function(){
$location.path('/');
});
});

编辑:因为您可能有很多 Controller ,所以您希望有一个包装您的 ngView 的父 Controller ...

<div ng-controller="MainAppCtrl">
<div ng-view>
</div>
</div>

上面的 Controller 现在将出现在所有 View 中,并且一定会注册您的监听器。

关于javascript - 让 $routeProvider 监听 $rootscope.$broadcast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140035/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com