Angular-ova DI je hijerarhijska: injektori čine stablo koje zrcali stablo komponenti/modula. Kada komponenta zatraži ovisnost, Angular ide gore kroz stablo injektora dok ne pronađe pružatelja — što kontrolira jesu li dobivate zajedničku singleton instancu ili zasebnu instancu po komponenti.
Hijerarhija injektora
Root injector (app-wide) ← providedIn: 'root' lives here (one singleton)
└─ Module/Route injectors
└─ Component injector ← providers: [...] in @Component
└─ Child component injector
Pretraga počinje od tražeće komponente i ide prema gore prema korijenskoj. pronađeni pružatelj pobjeđuje.
