Angularjs - 未知提供者:

时间:2014-11-16 00:49:24

标签: javascript angularjs yeoman

我一直收到这个错误:

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;
    }

  });
});

1 个答案:

答案 0 :(得分:2)

需要看起来像这样

.controller('MainCtrl', ['$scope', 'UsersService', function ($scope, UsersService) {

您正在注入$scope和您的服务。您需要按名称提及,然后在函数中以相同的顺序注入它们。

在您的示例中,您的$scope变量实际上是您的UsersService。