Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误$injector:i';我正在尝试注入服务器AngularJs_Javascript_Angularjs - Fatal编程技术网

Javascript 错误$injector:i';我正在尝试注入服务器AngularJs

Javascript 错误$injector:i';我正在尝试注入服务器AngularJs,javascript,angularjs,Javascript,Angularjs,我需要使用某个文件中的一些全局函数,并从不同的.js文件中调用它们。函数所在的文件名为header.js: (function(){ var head = { templateUrl: '/app/components/include/header.html', controller: headCtrl }; angular .module('myApp') .component('adminHead', head); headCtrl.$inject

我需要使用某个文件中的一些全局函数,并从不同的.js文件中调用它们。函数所在的文件名为
header.js

(function(){

var head = {
    templateUrl: '/app/components/include/header.html',
    controller: headCtrl
};

angular
    .module('myApp')
    .component('adminHead', head);
    headCtrl.$inject = ["$http"];
    function headCtrl($http){

        function test() {
            console.log('working');
            }                  

        }

    })();
我需要调用
home.js
文件中的示例函数:

    (function(){
    'use strict';

    var home = {
        templateUrl: '/app/components/home/admin-home.html',
        controller: adminHomeCtrl
    };

    angular
        .module('myApp')
        .component('adminHome', home);
        adminHomeCtrl.$inject = ["$scope", "$http", "$cookies"];
        function adminHomeCtrl($scope, $http, $cookies){


        }
})();
以前,Stackoverflow上的某个hre帮助我提供了一个调用这些全局函数的服务示例。因此,我创建了一个名为
excelsior.js
的新文件,保存示例:

(function () {
  angular.module('myApp')
    .factory('MyService', ['myDependency', function (myDependency) {
      const s = {
        test: function() {
          console.log('working');
        },
      };
      return s;
    }]);
})();
现在我的问题来了,当我尝试将“MyService”作为依赖项注入时。我在两个文件上都设置了如下依赖项:

    (function(){
    'use strict';

    var home = {
        templateUrl: '/app/components/home/admin-home.html',
        controller: adminHomeCtrl
    };

    angular
        .module('myApp')
        .component('adminHome', home);
        adminHomeCtrl.$inject = ["$scope", "$http", "$cookies", "MyService"];
        function adminHomeCtrl($scope, $http, $cookies, MyService){


            var x = MyService.test();
            console.log(x);

        }
})();
    (function(){
    'use strict';

    angular
        .module('myApp', ['ngResource', 'ngRoute', 'ngCookies', 'ngSanitize', 'MyService']);

})();
<script src="app/app.js"></script>
<script src="app/components/login/admin-login.js"></script>
<script src="app/components/include/excelsior.js"></script>
<script src="app/components/include/header.js"></script>
<script src="app/components/home/admin-home.js"></script>
但现在我得到了下一条错误消息:

Error: [$injector:unpr] http://errors.angularjs.org/1.6.9/$injector/unpr?p0=myDependencyProvider%20%3C-%20myDependency%20%3C-%20MyService
有人知道为什么会这样?在另一篇文章中,我发现我也必须在app.js上声明它,我是这样做的:

    (function(){
    'use strict';

    var home = {
        templateUrl: '/app/components/home/admin-home.html',
        controller: adminHomeCtrl
    };

    angular
        .module('myApp')
        .component('adminHome', home);
        adminHomeCtrl.$inject = ["$scope", "$http", "$cookies", "MyService"];
        function adminHomeCtrl($scope, $http, $cookies, MyService){


            var x = MyService.test();
            console.log(x);

        }
})();
    (function(){
    'use strict';

    angular
        .module('myApp', ['ngResource', 'ngRoute', 'ngCookies', 'ngSanitize', 'MyService']);

})();
<script src="app/app.js"></script>
<script src="app/components/login/admin-login.js"></script>
<script src="app/components/include/excelsior.js"></script>
<script src="app/components/include/header.js"></script>
<script src="app/components/home/admin-home.js"></script>
但最糟糕的是,我的应用程序崩溃了,下一条消息是:

angular.js:88 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.6.9/$injector/modulerr?p0=adminApp&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.6.9%2F%24injector%2Fmodulerr%3Fp0%3DMyService%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.6.9%252F%2524injector%252Fnomod%253Fp0%253DMyService%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A7%253A76%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A26%253A408%250A%2520%2520%2520%2520at%2520b%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A25%253A439)%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A26%253A182%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A42%253A332%250A%2520%2520%2520%2520at%2520r%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A8%253A7)%250A%2520%2520%2520%2520at%2520g%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A42%253A180)%250A%2520%2520%2520%2520at%2520https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A42%253A364%250A%2520%2520%2520%2520at%2520r%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A8%253A7)%250A%2520%2520%2520%2520at%2520g%2520(https%253A%252F%252Fajax.googleapis.com%252Fajax%252Flibs%252Fangularjs%252F1.6.9%252Fangular.min.js%253A42%253A180)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A7%3A76%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A43%3A99%0A%20%20%20%20at%20r%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A8%3A7)%0A%20%20%20%20at%20g%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A42%3A180)%0A%20%20%20%20at%20https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A42%3A364%0A%20%20%20%20at%20r%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A8%3A7)%0A%20%20%20%20at%20g%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A42%3A180)%0A%20%20%20%20at%20gb%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A46%3A250)%0A%20%20%20%20at%20c%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A22%3A19)%0A%20%20%20%20at%20Uc%20(https%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.9%2Fangular.min.js%3A22%3A332)
少了什么?或者当我注入依赖性时为什么不工作

在我的index.html上,我这样调用了js:

    (function(){
    'use strict';

    var home = {
        templateUrl: '/app/components/home/admin-home.html',
        controller: adminHomeCtrl
    };

    angular
        .module('myApp')
        .component('adminHome', home);
        adminHomeCtrl.$inject = ["$scope", "$http", "$cookies", "MyService"];
        function adminHomeCtrl($scope, $http, $cookies, MyService){


            var x = MyService.test();
            console.log(x);

        }
})();
    (function(){
    'use strict';

    angular
        .module('myApp', ['ngResource', 'ngRoute', 'ngCookies', 'ngSanitize', 'MyService']);

})();
<script src="app/app.js"></script>
<script src="app/components/login/admin-login.js"></script>
<script src="app/components/include/excelsior.js"></script>
<script src="app/components/include/header.js"></script>
<script src="app/components/home/admin-home.js"></script>

甚至,我也尝试过改变th文件的顺序,将excelsior文件放在admin home文件之后,但仍然是相同的错误

我正在使用AngularJs和Javascript


希望你能帮助我。提前感谢

首先,您不想在主
myApp
模块中插入
MyService
,因为您正在
myApp
中使用
angular.module('myApp').factory('MyService',[…])注册服务
。其次,您得到的注入错误是针对
myDependency
MyService
服务中。
myDependency
从哪里来?现在我明白了!我要求提供一个服务示例,因为我是新使用它的人。收到的示例具有
myDependency
。我已经删除了
myDependency
,它可以工作了!非常感谢。