Dependency Injection is a powerful pattern for managing code dependencies. DI is a way to create objects that depend upon other objects.
Angular has its own DI framework pattern, and you really can't build an Angular application without Dependency injection (DI).
A DI system supplies the dependent objects when it creates an instance of an object.