À 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