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>