Search code examples
angularangular2-diangular2-injection

Angular 2 get service by string name


Is there a way get an instance of an injectable service of angular 2 just by the service name?

For Example, in Angular 1 you could write:

var service = $injector.get('ServiceName');

and the service variable would get an instance of the service.

I'd really appreciate your help guys!


Solution

  • If you provide it by name, you can inject it by name

    @NgModule({
      providers: [
          ServiceName, 
          {provide: 'ServiceName', useExisting: ServiceName}
      ],
      ...