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
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.