Angularjs 无法将$http注入工厂

Angularjs 无法将$http注入工厂,angularjs,Angularjs,我试图将$http注入工厂,但出现以下错误: Error:Unknown provider:$httpProvider我还没有真正测试过这些,但我相信您的问题可以通过多种方式解决: 1. 使用angular.module('util',['ng'])代替angular.module('util',[]) 2. 使用app.get('utilService')代替angular.injector(['util']).get('utilService') 3. 去掉var utilService=a

我试图将
$http
注入
工厂
,但出现以下错误:


Error:Unknown provider:$httpProvider我还没有真正测试过这些,但我相信您的问题可以通过多种方式解决:

1. 使用
angular.module('util',['ng'])
代替
angular.module('util',[])

2. 使用
app.get('utilService')
代替
angular.injector(['util']).get('utilService')

3. 去掉
var utilService=angular.injector(['util']).Get('utilService')
并添加
utilService
作为
记录功能的最后一个参数。我不确定这是否有效,因为我通常不使用这种声明形式

如果#3起作用,使用它,如果不起作用,使用#2。只有在必要时才使用#1


此外,您没有发布使用
记录的代码部分,但是,请确保对依赖项使用数组表示法,否则在使用UglifyJS或类似的代码时也会出现问题。

您是否可以将代码粘贴到使用utilService的位置?您是否可以提供一个plunker?我在一些上下文中编辑了这个问题。函数“records”定义在哪里?在窗口或封装的作用域中(函数(){…函数记录…})(@AnsumanBebarta他做得很对:
var util = angular.module('util', [])
.factory('utilService', ['$http', function($http) {             
    return {
        translate: function(objects, prop) {
            var keys = objects.map(function(o) {return o[prop];});      
            $http({method: 'POST', url: 'http://localhost:8080/rest/messages', data: keys}).
            success(function(data, status, headers, config) {
                return objects.map(function(o, rank) {return {'value': data[rank], 'object': o}});
            });
        }
    };
}]);
var app = angular.module('recordController', ['ui.bootstrap','dialogs', 'util']);

function records($scope, $http, $rootScope, $timeout, $dialogs) {

  var utilService = angular.injector(['util']).get('utilService');

  $scope.showForm = false;
  $scope.states= [];

  $scope.toggleForm = function() {
    $scope.showForm = !$scope.showForm;

    if($scope.showForm) {
        if(!$scope.states.length) {
            $http({method: 'GET', url: 'http://localhost:8080/rest/records/state'}).
            success(function(data, status, headers, config) {
                $scope.states = utilService.translate(data, 'state');   
            });
        }
    }
  };

  ...
};
    <div ng-app='recordController'>
      <div ng-controller='records' >    
        ...
      </div>
    </div>