Marwen Trabelsi
Marwen Trabelsi

Reputation: 4257

Unable to inject a provider into the config block

I can't get the provider injected in my config section, here my code:

 <!-- they are placed in that order -->
            <script src="app/components/department/DepartmentController.js"></script>
            <script src="app/components/department/DepartmentProvider.js"></script>
            <script src="app/components/department/DepartmentService.js"></script>


            <script src="app/components/department/support/SupportController.js"></script>
            <script src="app/components/department/support/SupportRouter.js"></script>

Department.js

var departmentModule = angular.module('module.department', ['ngResource']);

    // departmentModule.controller('DepartmentController', function($scope) {

 //   nothing here

    // });

DepartmentService.js:

departmentModule.factory('Department', function($http) {

            return {
                getAll : function(){
                        return $http.get('/api/departments');
                    },
                getByName : function(name){
                        return $http.get('/api/department/'+name);
                    }
                };

});

DepartmentProvider.js:

departmentModule.provider('Department', function() {
     var name = 'marwen';

     this.$get = function() {
         return {
            name: name
         };
     };
});

SupportRouter.js :

supportModule.config(function($stateProvider, $urlRouterProvider,$locationProvider,DepartmentProvider) {

...

I get this error: Unknown provider: DepartmentProvider

Upvotes: 1

Views: 98

Answers (2)

Pankaj Parkar
Pankaj Parkar

Reputation: 136194

Department provider has been overridden by the Department service, you need to specify the different name for provider & service, Both can not be with a same name, The latest one will get register. As you are loading service after provider. Service gets register with in Angular App & the provider is not available inside config.

Upvotes: 1

Alexey Semenyuk
Alexey Semenyuk

Reputation: 3303

Try to change supportModule.config(function($stateProvider, $urlRouterProvider,$locationProvider,DepartmentProvider) to supportModule.config(function($stateProvider, $urlRouterProvider,$locationProvider,Department)

or change your provider name from Department to DepartmentProvider

Upvotes: 1

Related Questions