Custom InjectionToken + Hierarchical Providers
Demonstrates DI hierarchy resolution: root → parent → child injector override.
Root Level
Default config via providedIn: 'root'
Root Injector (Default)
API URL: https://api.default.example.com
Version: 1.0.0
Parent Component
Provides its own APP_CONFIG value
Parent Component (Override)
API URL: https://api.parent.example.com
Version: 2.0.0
Child Component (Override)
API URL: https://api.child.example.com
Version: 3.0.0-beta
Child Component
Overrides parent's APP_CONFIG value
Child Component (Override)
API URL: https://api.child.example.com
Version: 3.0.0-beta
How it works
APP_CONFIGtoken defined withprovidedIn: 'root'and factory for defaults- Parent component adds provider to override
APP_CONFIG— creates new injector level - Child component adds its own provider — creates another injector level
- Each
ConfigDisplayComponentinjectsAPP_CONFIG— resolves to nearest provider in hierarchy