Angular کا DI hierarchical ہے: injectors ایک درخت بناتے ہیں جو component/module درخت کو ظاہر کرتی ہے۔ جب کوئی component کسی dependency کی درخواست کرتا ہے، Angular اوپر کی طرف injector درخت میں چلتا ہے جب تک کہ اسے ایک provider نہ مل جائے — جو یہ کنٹرول کرتا ہے کہ آپ کو shared singleton ملتا ہے یا ہر component کے لیے الگ instance۔
injector hierarchy
Root injector (app-wide) ← providedIn: 'root' lives here (one singleton)
└─ Module/Route injectors
└─ Component injector ← providers: [...] in @Component
└─ Child component injector
