Angular js工厂注塑

时间:2018-05-10 06:30:42

标签: angularjs

我是Angular JS的新手。我按如下方式创建了工厂。

angular.module('login',[])
        .factory('authFactory',[function(){
         // logic 

        }] );

已注入控制器,但它给了我一个错误。

我还在index.html中提供了这个工厂文件,但错误是一样的。

  

[$ injector:unpr]未知提供者:authFactoryProvider< - authFactory

我该怎么做才能避免这种情况?

下面是我注入的代码。

(function () {
  'use strict';


  angular.module('login', []).controller("LoginController", loginController)

  loginController.$inject = ['$cookies', '$log', '$scope', '$rootScope', '$q', '$location', '$timeout', '$window',authFactory];

  function loginController($cookies, $log, $scope, $rootScope, $q, $location, $timeout, $window,authFactory) {

2 个答案:

答案 0 :(得分:1)

你是说这个意思吗? (你错过'')

loginController.$inject = ['$cookies', '$log', '$scope', 
    '$rootScope', '$q', '$location', '$timeout', '$window', 'authFactory'];

不要两次创建模块:

angular.module('login', [])
    .factory('authFactory',[function(){
     // logic 

    }] )

angular.module('login').controller("LoginController", loginController)

答案 1 :(得分:0)

不要使用模块两次,以此为例进行编码

(function () {
  'use strict';

  var login = angular.module('login',[]);

  login.factory('authFactory',[function(){
         // logic 
    return {
    }

  }]);

  login.controller("LoginController", loginController);

  loginController.$inject = ['$log', '$scope', '$rootScope', '$q', '$location', '$timeout', '$window','authFactory'];

  function loginController($log, $scope, $rootScope, $q, $location, $timeout, $window,authFactory) {

  }

})();

由于你是棱角分明的新手,我建议你浏览一下非常好的YouTube视频

https://www.youtube.com/watch?v=FDhGmFul4YU&index=2&list=PLvZkOAgBYrsS_ugyamsNpCgLSmtIXZGiz