提供程序函数中的AngularJS$http请求

提供程序函数中的AngularJS$http请求,angularjs,routes,angular-http,Angularjs,Routes,Angular Http,我正在尝试用AngularJS实现客户端身份验证。现在,我正在将每条路线的访问级别作为工厂注入我的应用程序的配置功能中。这是我的密码: shop = angular.module('shop', ['ngCookies']). provider('AccessLevels',function () { var accessLevels = { guest: 7, customer: 6, seller: 4 }; retur

我正在尝试用AngularJS实现客户端身份验证。现在,我正在将每条路线的访问级别作为工厂注入我的应用程序的配置功能中。这是我的密码:

shop = angular.module('shop', ['ngCookies']).
provider('AccessLevels',function () {
    var accessLevels = {
        guest: 7,
        customer: 6,
        seller: 4
    };
    return {
        $get: function () {
            return accessLevels
        }
    }
}).
config(['$routeProvider', '$locationProvider', 'AccessLevelsProvider', function ($routeProvider, $locationProvider, AccessLevelsProvider) {

    var accessLevels = AccessLevelsProvider.$get();

    $routeProvider.
        when('/index', {templateUrl: "pages/index", controller: IndexController, access: accessLevels.guest}).
        when('/user', {templateUrl: "pages/user", controller: UserController, access: accessLevels.customer}).
        when('/sign_up', {templateUrl: "pages/sign_up", controller: SignUpController, access: accessLevels.guest});
}]);
是否可以通过$http.get请求获取访问级别的数据?我无法将$http注入到我的提供程序函数中,所以目前我有点无能为力。
任何帮助都将不胜感激。

使用当前版本的AngularJS,您无法将
$http
注入配置块(更多信息请参见此处)。除此之外,配置块是同步的,因此调用async
$http
无论如何都不起作用


不幸的是,没有基于动态数据重新定义路由的标准方法。您可以尝试各种解决方法,其中一种在此处介绍:

对于当前版本的AngularJS,您无法将
$http
注入配置块(更多信息请参见此处)。除此之外,配置块是同步的,因此调用async
$http
无论如何都不起作用


不幸的是,没有基于动态数据重新定义路由的标准方法。您可以尝试各种解决方法,其中一种在此处介绍:

非常感谢您快速、非常有用的回复!非常感谢您的快速和真正有用的答复!