我一直收到这个错误:
Error: [$injector:unpr] Unknown provider: UsersServiceProvider <- UsersService
我在https://docs.angularjs.org/error/ $ injector / unpr中读到了这个主题,所以我把['UsersService'放在我的控制器功能之前,但没有让它工作。
这是我的代码,我只运行yo angular
然后yo angular:service users
。
这是在我的controllers / main.js
中angular.module('pmsFrontApp')
.controller('MainCtrl', ['UsersService',function ($scope, UsersService) {
$scope.form = { firstName: '', lastName: '' };
UsersService.fetchAll().then(function(data) {
//console.log(data);
//$scope.lista = data;
});
}]);
这是我的services / users.js
angular.module('pmsFrontApp')
.service('UsersService', function ($q,$http) {
this.fetchAll = function() {
var defer = $q.defer();
$http.get('http://localhost:8888/users', /*{
params: {}
}*/).success(function(data) {
defer.resolve(data);
}).error(function() {
defer.reject('No vieja');
});
return defer.promise;
}
});
});
答案 0 :(得分:2)
需要看起来像这样
.controller('MainCtrl', ['$scope', 'UsersService', function ($scope, UsersService) {
您正在注入$scope
和您的服务。您需要按名称提及,然后在函数中以相同的顺序注入它们。
在您的示例中,您的$scope
变量实际上是您的UsersService。