首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减小httpInterceptor AngularJS $injector误差

减小httpInterceptor AngularJS $injector误差
EN

Stack Overflow用户
提问于 2015-02-26 09:55:24
回答 1查看 488关注 0票数 1

当我缩小/模糊/丑化我的代码时,我的httpInterceptor不再工作了。

我得到以下错误:

代码语言:javascript
复制
Error: error:unpr
Unknown Provider

Unknown provider: aProvider <- a

我的代码中删除了所有无关的内容:

代码语言:javascript
复制
angular.module("MyApp").factory('sessionChecker', ['$q', '$injector',
    function ($q, $injector) {
        var sessionRecoverer = {
            responseError: function (response) {
                // Session has expired
                if (response.status === 401) {
                    var $location = $injector.get('$location');
                    var $modal = $injector.get('$modal');
                    $location.path("/login");

                } else if (response.status === 500) {
                    var $location = $injector.get('$location');
                    //Do stuff..
                } else if (response.status === 0) {
                    var $modal = $injector.get('$modal');
                    //Do stuff..
                }
                return $q.reject(response);
            }
        };
        return sessionRecoverer;
    }]);

angular.module("MyApp").config(['$httpProvider',
    function ($httpProvider) {
        $httpProvider.interceptors.push('sessionChecker');
    }]);

我如何正确地注入我的依赖关系,或者我是不是遗漏了什么?这是很好的工作,而不缩小我的代码。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 10:06:55

您确定是这段代码生成了错误吗?(这段代码在我看来没问题.)但是,此错误肯定是由于不使用['dep1', dep2', function(dep1,dep2){...}]语法(或与$inject等效)而引起的。

您可以尝试严格的DI模式,这样角将报告非小型化模式(参考文献)中的错误:

代码语言:javascript
复制
<div ng-app="myApp" ng-strict-di>

或者(如果手动引导):

代码语言:javascript
复制
angular.bootstrap(document, ['myApp'], {
    strictDi: true
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28739214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档