W3cubDocs

/Angular

Injectable

decorator

A marker metadata that marks a class as available to Injector for creation.

@Injectable({ 
  providedIn?: Type<any> | 'root' | null
  factory: () => any
})

Description

For more details, see the "Dependency Injection Guide".

Example

@Injectable()
class UsefulService {
}

@Injectable()
class NeedsService {
  constructor(public service: UsefulService) {}
}

const injector = ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService]);
expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
Injector

will throw an error when trying to instantiate a class that does not have @Injectable marker, as shown in the example below.

class UsefulService {}

class NeedsService {
  constructor(public service: UsefulService) {}
}

expect(() => ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService])).toThrow();

Options

Property Type Description

Usage Notes

@Injectable()
class Car {}

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://angular.io/api/core/Injectable