AngularJS $注入服务注入错误



我是Angular的新手,因此,如果您可以帮助我,会很高兴。我将逻辑分配在2个文件(控制器和服务)上。我的服务代码:

(function () {
    'use strict';    
     angular
        .module('app', [])
        .factory('authservice', authservice);
    authservice.$inject = ['$http', '$logger'];
    function authservice($http, $logger) {
        return {
            signInOwner: signInOwner,
            signUpOwner: signUpOwner
        };
        function signInOwner(owner) {
        }
        function signUpOwner(owner) {
        }
    };
})();

我的控制器代码:

(function () {
  'use strict';
   angular
      .module('app', [])
      .controller('SignUpController', SignUpController);
   SignUpController.$inject = ['authservice'];
   function SignUpController (authservice) {
     var vm = this;
  }
})();

我在Controller.js之前包括我的services.js,但仍然遇到错误的authservice依赖项

angular.js:14362错误:[$ inextor:unpr]

你能帮我吗?

使用此Synthax angular.module('app', []),您是覆盖模块创建。您应该使用angular.module('app')取回它。

[]应仅使用一次:在创建模块时。


来自Angular module DOC:

注意使用angular.module('myModule', [])将创建 模块myModule并覆盖任何名为myModule的现有模块。使用 angular.module('myModule')检索现有模块。

在您的控制器代码中替换:

angular
      .module('app', [])
      .controller('SignUpController', SignUpController);

angular
      .module('app') // notice the lack of [] here!!
      .controller('SignUpController', SignUpController);

这是因为使用[],这意味着您正在创建模块,而没有它,这意味着您要找到模块。由于在您创建服务时创建了模块,因此您无需再次创建它,只需找到它即可。

相关内容

  • 没有找到相关文章

最新更新