0 Tage Serie
javascript / expert
Snippet

Dynamische Dependency Injection mit funktionalen Factories

Die moderne Dependency Injection von Angular ermöglicht es, Provider direkt innerhalb eines `InjectionToken` mittels einer Factory zu definieren. Durch die Verwendung der `inject()`-Funktion innerhalb der Factory können andere Abhängigkeiten zur Laufzeit dynamisch aufgelöst werden. Dieses Muster fördert saubere, entkoppelte Konfigurationen und reduziert Boilerplate in der `AppConfig` oder Moduldefinitionen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
import { InjectionToken, inject } from '@angular/core';
export const API_CONFIG = new InjectionToken<string>('ApiConfig', {
providedIn: 'root',
factory: () => {
const env = inject(ENVIRONMENT_TOKEN);
return env.production ? 'https://api.pro.com' : 'https://api.dev.com';
}
});
angular
Erklärung
1
factory: () => { ... }
Definiert die Logik zur Erstellung des Abhängigkeitswerts bei Anforderung.
2
const env = inject(ENVIRONMENT_TOKEN);
Verwendet die funktionale inject-API, um ein anderes Token innerhalb des Factory-Kontexts abzurufen.