Avatar ·

À quoi sert providedIn dans le décorateur Injectable lors de la création de services dans Angular 6 ?

Bonjour à tous ! J'ai commencé à apprendre Angular 6 et TypeScript, et lors de la génération d'un service via le CLI, j'ai remarqué ceci : ```typescript @Injectable({ providedIn: 'root' }) export class MyService { constructor() { } } ``` Avant, dans Angular 5, j'écrivais simplement `@Injectable()` sans aucun paramètre, puis j'enregistrais le service dans le module dans la section `providers`. Maintenant, le CLI génère ce `providedIn: 'root'`. Je suis un peu perdu. Voici comment je faisais avant : ```typescript // my.service.ts @Injectable() export class MyService { } // app.module.ts @NgModule({ providers: [MyService] }) export class AppModule { } ``` Et maintenant la nouvelle approche : ```typescript // my.service.ts @Injectable({ providedIn: 'root' }) export class MyService { } ``` Questions : 1. Que fait exactement `providedIn: 'root'` ? Est-ce simplement un remplacement de l'enregistrement dans le module ? 2. Si je spécifie `providedIn: 'root'`, dois-je quand même ajouter le service dans `providers` du module ? 3. Que se passe-t-il si je spécifie `provid