AngularJS在手动引导之前注入需要$ http的服务

时间:2017-06-26 13:30:15

标签: angularjs

这是我的服务

(function(angular, module){

    module.provider('auth', ['$http', function($http){
        this.$get = function(){
            return {
                user: function(){
                    return {then: function(){}}
                }
            }
        }
    }]);

})(angular, angular.module('auth', []));

我想在app bootstraps之前检查用户,所以我正在做:

angular.element(document).ready(function() {
    var auth = angular.injector(['auth', 'ng']).get('auth');

    auth.user().then(function(response){
        angular.bootstrap(document, ['app']);
    });
});

但是$http服务没有得到解决,事实上如果我确实从auth服务中删除了依赖关系,我就没有错误。我做错了什么?

1 个答案:

答案 0 :(得分:3)

为什么不尝试这种方式

print

你的方式:

// create an injector
var $injector = angular.injector(['ng']);

$injector.invoke(function($http) {
  $http.get(url).then(function() {
    angular.bootstrap(document, ['app']);
  });
});