AngularJS - 在控制器

时间:2016-09-03 16:32:15

标签: angularjs service controller

在Angular中将服务注入控制器的正确方法是什么?

我已经写了一个服务,我想在我的控制器中使用它。但我不断收到错误。也许有人发现我的错误很容易......

authController.js

(function() {

'use strict';

angular
       .module('authApp')
       .service('authService', function($auth, $state, $http, $rootScope, envService,   $scope) {
          // some code 
        })
       .controller('SignupController', SignupController, ['$scope', 'authService’]);

       function SignupController($http, $scope, $rootScope, $location, envService, authService) {
          // want to use my authService here 
       }

 ...

此时我收到以下错误:

  

angular.js:12477错误:[$ injector:unpr]未知提供者:$ scopeProvider< - $ scope< - authService

我将authService注入signupController的方式有什么问题?

感谢。

2 个答案:

答案 0 :(得分:1)

您声明控制器时出错。使用数组语法声明控制器将接收控制器的名称作为String作为第一个参数,并将数组作为第二个参数接收。数组的最后一个元素必须是具有所有控制器逻辑的函数。该函数必须具有与数组本身中先前元素一样多的参数。在你的情况下,它应该是这样的:

(function() {

'use strict';

angular
       .module('authApp')
       .service('authService', function($auth, $state, $http, $rootScope, envService,   $scope) {
          // some code 
        })
       .controller('SignupController', ['$http', '$scope', '$rootScope', '$location', 'envService', 'authService',  function ($http, $scope, $rootScope, $location, envService, authService) {
          // Use your authService here 
       }]);
 ...

答案 1 :(得分:0)

您可以检查styleguide以更好的方式编写控制器,服务和注入依赖项。