Stefan Blattmann
Stefan Blattmann

Reputation: 141

AngularJS - Error: [$injector:unpr] Unknown provider:

I wanted to rewrite my existing code, but I failed as I run into this error:

ionic.bundle.js:8900 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module app.routes due to:
Error: [$injector:unpr] Unknown provider: 

My working snippet:

angular.module('app.routes', [])
   .config(function() {});

My rewritten snippet (this one fails):

(function () {

  // use strict mode to write clean code!
  'use strict';

  // This configures the routes
  var RouteProvider = function () {

  };

  // init the config
  angular.module('app.routes', [])
    .config(['', RouteProvider]);

}());

I have created a Plunker for this: Plunker

Thanks for your help ;)

Upvotes: 1

Views: 1275

Answers (1)

Joe Clay
Joe Clay

Reputation: 35837

You have an empty string into your .config call - this is effectively telling Angular you want to inject a service with a blank string as the name into your config function. This doesn't exist, so you get an unknown provider error - a pretty unclear one at that, because it tries to show you the name of the service, but it's blank, so you just end up with Error: [$injector:unpr] Unknown provider: and nothing else!

Your .config call should look more like this:

// init the config
  angular.module('app.routes', [])
    .config(RouteProvider);

You don't need the array syntax if you're not actually injecting anything into the function.

Upvotes: 4

Related Questions