Angular Services
What is a Service?
Implemented using simple classes
Use @Injectable decorator
Used to
load data
validation
logging
Creating a Service
Dependency Injection
Common programming technique
Services are supplied to components using it
DI allows:
Using classes without hard coding constructor calls
Loose coupling
Substitute mocked services during testing
Bad:
Good:
Services in Components
Components get services through DI
Each component has it's own Injector to do DI
Injectors can only inject services they know about.
Injectors are notified of services via the component's providers meta data
Injectors are hierarchical, just like components and modules
If a component doesn't provide the service, it goes up the parent tree until it finds it or throws an error.
DI with @Host or @Optional
The @Host() decorator limits the hierarchy search up to the parent component injector. If not found, will throw an error. The @Optional() decorator returns null if the provider is not found in the hierarchy tree instead of throwing an error.
Summary
What is a service
Creation of services
What is DI
Services in Components
DI decorators
Last updated