Javascript 未捕获错误:[$injector:moduler]

Javascript 未捕获错误:[$injector:moduler],javascript,angularjs,Javascript,Angularjs,对于angular,我有以下app.js文件,我想添加一个响应拦截器,但当我添加响应拦截器时,它会在控制台上抛出一个错误 未捕获错误:[$injector:moduler] 下面是文件 (function () { "use strict"; angular.module("builder").config(["$stateProvider", "$urlRouterProvider", "$locationProvider", "$provide","$htt

对于angular,我有以下app.js文件,我想添加一个响应拦截器,但当我添加响应拦截器时,它会在控制台上抛出一个错误

未捕获错误:[$injector:moduler]

下面是文件

(function () {
        "use strict";

        angular.module("builder").config(["$stateProvider", "$urlRouterProvider", "$locationProvider", "$provide","$httpProvider",
                function ($stateProvider, $urlRouterProvider, $locationProvider, $provide, $httpProvider) {

                    $httpProvider.responseInterceptors.push('responseObserver');
    }]).factory('responseObserver',
                function responseObserver($q, $window) {
            return function (promise) {
                return promise.then(function (successResponse) {
                    return successResponse;
                }, function (errorResponse) {

                switch (errorResponse.status) {
                case 401:
                    $window.location = $window.location;
                    break;
                case 403:
                    $window.location = './403.html';
                    break;
                  case 500:
                    $window.location = './500.html';
               }

               return $q.reject(errorResponse);
              });
            };
        });
    }());

谁能告诉我是什么导致了这个问题。

您没有在任何地方定义角度模块“生成器”。文件使用的以下格式:

angular.module("builder")
也就是说,使用我已经定义的角度模块“生成器”

以下格式:

angular.module("builder",[])
也就是说,此时此地创建角度模块“生成器”,并删除之前的任何模块

您可以同时创建和使用:

angular.module("builder",[]).config(....

但您必须至少在某个地方定义一次。

您的工厂应更改如下:

.factor('responseObserver', '$window', function responseObserver($window, $q){

});

注意我注入$window的方式。您必须对$window进行注释,以便injector能够识别要注入的函数/指令/服务

因此,如果你点击“角度误差”链接,并在加载的每个页面上继续向下搜索,你就会找到罪魁祸首。我的猜测是,在尝试注入工厂时,找不到$q或$window。你有一个模组。你确定调用了另一个文件,并且是先调用的吗?是的,我肯定是这样的,那么你能提供更多的代码和更多的错误消息吗?如果没有,plunkr或JSFIDLE会非常有用。它从参数的名称识别它。如果要缩小,则只需要使用注释,即使如此,ng annotate也会为您提供注释。在任何情况下,它都必须在一个数组中,并且所有参数都必须匹配。@好吧,这是我不知道的。谢谢你让我知道