Reputation: 478
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!
Upvotes: 8
Views: 5560
Reputation: 6839
You can use Explicit injector creation using the Injector Class
injector = ReflectiveInjector.resolveAndCreate([ServiceClass, Dependency1Class, Dependency2Class]);
let service= injector.get(ServiceClass); //pass the type not the name
Upvotes: 1
Reputation: 658047
If you provide it by name, you can inject it by name
@NgModule({
providers: [
ServiceName,
{provide: 'ServiceName', useExisting: ServiceName}
],
...
Upvotes: 12