NullInjectorError: No provider for X
Angular ne sait pas comment créer le service que vous injectez : aucun provider ne lui a été déclaré dans l'arbre d'injection.
NullInjectorError: R3InjectorError(AppModule)[MyService -> MyService]: No provider for MyService!🔍 Cause la plus probable
Le service n'a pas `@Injectable({ providedIn: 'root' })`, ou il n'est pas fourni dans le `providers` du composant/route, ou vous injectez quelque chose qui n'est pas injectable.
✅ Solution étape par étape
- Ajoutez `providedIn: 'root'` au décorateur `@Injectable` du service (cas le plus courant).
- Pour un service à portée limitée, ajoutez-le au tableau `providers` du composant ou de la route.
- Vérifiez que vous n'injectez pas un simple objet/constante sans `InjectionToken`.
@Injectable({ providedIn: 'root' })
export class MyService {}🧩 Autres causes possibles
HttpClient non fourni
Ajoutez `provideHttpClient()` dans `app.config.ts` (standalone) ou importez `HttpClientModule`.
Service fourni dans un module non importé
Importez le module qui déclare le provider, ou passez le service en `providedIn: 'root'`.
🛡️ Comment l'éviter à l'avenir
Privilégiez `providedIn: 'root'` pour les services partagés : tree-shakable et toujours disponible.
🔒 Votre erreur est différente ?
Collez votre message d'erreur dans notre analyseur IA. Traitement anonymisé, rien n'est stocké.
Analyser mon erreur avec l'IABloqué sur un bug plus complexe ?
Nos développeurs Java, Spring & Angular débuggent, optimisent et livrent votre projet.
Parler à un développeur