goutham
goutham

Reputation: 240

Unknown Provider error

I have created a route config like below :

angular.module('kappa.configs',['ngRoute'])
.config(['$routeProvider',function($routeProvider){
    $routeProvider.when('/',{
        controller: 'MainCtrl',
        resolve: {
            getPlate: ['$http',function($http){
                return $http.get('samples.json');
            }]
        }
  });
}]);
angular.module('kappa.controllers',[])
.controller('MainCtrl',['$scope','$http','SamplesService','getPlate',function($scope,$http,SamplesService,getPlate){
  $scope.fullPlate = getPlate;
 // Some more code here
}]);

//Some more code
angular.module('kappa',['ngResource','ngRoute','kappa.services','kappa.controllers','kappa.configs']);

But I get a unknown provider error like below:

 Error: [$injector:unpr] Unknown provider: getPlateProvider <- getPlate
 http://errors.angularjs.org/1.2.9/$injector/unpr?p0=getPlateProvider%20%3C-%20getPlate
 at http://code.angularjs.org/1.2.9/angular.js:78:12
 at http://code.angularjs.org/1.2.9/angular.js:3546:19
 at Object.getService [as get] (http://code.angularjs.org/1.2.9/angular.js:3673:39)
 at http://code.angularjs.org/1.2.9/angular.js:3551:45
 at getService (http://code.angularjs.org/1.2.9/angular.js:3673:39)
 at invoke (http://code.angularjs.org/1.2.9/angular.js:3700:13)
 at Object.instantiate (http://code.angularjs.org/1.2.9/angular.js:3721:23)
 at http://code.angularjs.org/1.2.9/angular.js:6772:28
 at http://code.angularjs.org/1.2.9/angular.js:6185:34
 at forEach (http://code.angularjs.org/1.2.9/angular.js:310:20) 

I am stuck here .. any help is appreciated ..

Upvotes: 2

Views: 2808

Answers (1)

musically_ut
musically_ut

Reputation: 34288

You will run into this problem if you are trying to use the controller anywhere other than in the context of a route, e.g. if you have ng-controller="MainCtrl" somewhere in your template or if you are using it another route which does not have getPlate resolver.

Working demo: http://plnkr.co/edit/J4thldg3aWmC9e8UAHut?p=preview

If you include ng-controller="MainCtrl" anywhere in the template, you'll see the error.

Upvotes: 3

Related Questions