Drzewo zależności
Angular ma własny framework, który zarządza wstrzykiwaniem zależności (ang. dependency injection).
Jego kluczowym elementem są tablice providers
, które możemy umieścić w metadanych komponentów oraz modułów.
Tworzą one drzewiastą strukturę definiowaną poprzez nawigację oraz zagnieżdżenia komponentów.
Angular poszukując potrzebnej zależności przechodzi od miejsca, w którym jej zażądano w górę aż do momentu kiedy napotka pierwszą tablicę providers
, która jej dostarcza.
Komponent a moduł
Istnieje pewna różnica pomiędzy dostarczaniem zależności w komponentach oraz modułach.
Te dostarczane w komponencie są tworzone bezpośrednio na jego poziomie.
Natomiast te dostarczane w module są dostarczane na najwyższym poziomie (root) i są dostępne w całej aplikacji.
Szczególną uwagę na to zachowanie należy zwrócić w przypadku modułów ładowanych leniwie (ang. lazy loading). Dostarczone w nich zależności są dostępne w innych modułach dopiero po ich załadowaniu, które może nigdy nie nastąpić.