在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的方式有什么问题?
感谢。
答案 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以更好的方式编写控制器,服务和注入依赖项。