Avatar ·

Para que serve o providedIn no decorador Injectable ao criar serviços no Angular 6?

Olá a todos! Comecei a estudar Angular 6 e TypeScript, e ao gerar um serviço via CLI, notei algo assim: ```typescript @Injectable({ providedIn: 'root' }) export class MyService { constructor() { } } ``` Antes, no Angular 5, eu simplesmente escrevia `@Injectable()` sem parâmetros, e depois registrava o serviço no módulo na seção `providers`. Agora o CLI gera esse `providedIn: 'root'`. Fiquei um pouco confuso. Assim que eu fazia antes: ```typescript // my.service.ts @Injectable() export class MyService { } // app.module.ts @NgModule({ providers: [MyService] }) export class AppModule { } ``` E agora a nova abordagem: ```typescript // my.service.ts @Injectable({ providedIn: 'root' }) export class MyService { } ``` Perguntas: 1. O que exatamente faz `providedIn: 'root'`? É apenas uma substituição do registro no módulo? 2. Se eu especificar `providedIn: 'root'`, ainda preciso adicionar o serviço em `providers` do módulo? 3. O que acontece se eu especificar `provid