Angular JS未知提供程序错误

时间:2015-06-27 23:35:38

标签: angularjs angularjs-service angularjs-factory

我在我的角度js应用程序中收到此错误,无法找出造成问题的原因。这似乎是一个常见的问题,但我所有的故障排除都没有帮助。如果任何人都可以指出问题可能会受到赞赏。谢谢:))

错误:[$ injector:unpr]未知提供者:ResultsServiceProvider< - ResultsService< - ResultsController

这是我的代码:

app.js

   angular.module('resultsApp', ['ngRoute', 'nvd3', 'ngResource'])
   .config(['$routeProvider', function($routeProvider) {
       $routeProvider.when('/results', {
       controller: 'ResultsController',
        templateUrl: 'app/results/Results.html'
      });
   }])

控制器

    angular
          .module('resultsApp')
          .controller('ResultsController', ResultsController);

   function ResultsController($scope, ResultsService) {
      $scope.teams = [{teamA: ''}, {teamB: ''}];
      $scope.premResults = [];

      $scope.searchByTeams = function () {
      ResultsService.getResultsList($scope.teams.teamA,$scope.teams.teamB,   function (res) {
      $scope.premResults = res;
    );
  };
}

服务:

angular
.module('resultsApp')
.service('ResultsService', ResultsService);

    function ResultsService(ResultFactory) {

        this.getResultsList = getResultsList;

        function getResultsList(teamA, teamB, callback) {
            return ResultFactory.get({teamA: teamA, teamB: teamB}, callback);
    }
}

angular
    .module('resultsApp')
    .factory('ResultFactory', ResultFactory);

function ResultFactory($resource) {
    return $resource('api/results', {}, {
        get: {method: 'get', isArray: true}
    });
 }

1 个答案:

答案 0 :(得分:6)

如果您遇到如下错误:

  

错误:[$ injector:unpr]未知提供者:ResultsServiceProvider< -   ResultsService< - ResultsController

通常意味着其中一件事:

  • 在创建(声明)它时,您拼错了ResultsService名称
  • 未插入脚本标记,指向包含index.html中服务的文件。
  • 或者您已在主应用模块以外的某个模块中创建了该服务,但忘记将此模块列为您应用的依赖项之一(例如angular.module('myApp', ['moduleWithService']);)< / LI>

因此,在调试此类错误时,您应该始终从检查这三件事开始。