Eu tenho uma aplicação em angular que começou a ser feita no angular4 e foi atualizando até o angular8. Lá atrás, ao gerar um service ele vinha sem o root
no @Injectable({ providedIn: 'root', })
. Depois, pelo que eu entendi, passou a ser gerado automaticamente pelo angular CLI.
A minha dúvida é entender o motivo do providedIn e sua real necessidade. Isso porque o Flavio comenta que fazendo isso podemos acessar o service de qualquer lugar da aplicação. Mas o estranho é que eu estou utilizando o Angular8 e não tem o providedIn: 'root'
em nenhum service e mesmo assim eu consigo acessá-lo via injeção de dependência em qualquer lugar da aplicação.
Na documentação do angular, tem esse exemplo simples a seguir de uma utilização de um service com o providedIn: 'root'. https://stackblitz.com/angular/kgmpnvdxqmo?file=src%2Fapp%2Fuser.service.ts .
Eu entrei e retirei o providedIn deixando apenas o @Injectable() sem mais nada. E funciona normalmente, ele consegue chamar o service via injeção de dependência... Então ter ou não ter o providedIn: 'root'
daria na mesma?