Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Gostaria que me explicassem melhor esse trecho: @Injectable({ providedIn: 'root'})

Gostaria que me explicassem melhor o trecho abaixo:

@Injectable({ providedIn: 'root'})

Sei que ele é fundamental para a construção do Resolver, mas queria que me dessem detalhes, pois já esqueci para que serve este Decorator.

9 respostas

Fala ai Mauricio, tudo bem? O decorator Injectable é para o Angular controlar e lidar com injeções de dependência. Quando você adicione esse decorator para seu serviço ou alguma outra classe, você está dizendo que o mesmo pode ser injetável como dependências em outros componentes.

Dai o providedIn controla quem pode realizar a injeção dessa classe (que está sendo decorada), ou seja, conseguimos liberar de forma global, por módulos, por arquivos, etc...

Espero ter ajudado.

Como assim injetável? Exemplifique, por favor.

solução!

Fala Mauricio, Injetável seria ela pode ser declarada no construtor dos componentes, isso porque o mecânismo de injeção de dependência do Angular trabalho injetando as dependências declaradas no construtor.

Espero ter ajudado.

Ajudou. Obrigado.

Magina Mauricio, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.

Professor, gostaria de confirmar se entendi corretamente o conceito. Então, por favor, poste um exemplo de uso aqui.

Fala Mauricio, tudo bem? Qual foi o seu entendimento? Compartilha comigo dai eu vejo se o mesmo segue a funcionalidade.

Espero ter ajudado.

Por exemplo. Neste trecho de código:

@Injectable({ providedIn: 'root' })
export class PhotoListResolver implements Resolve<Observable<Photo[]>> {

    constructor(private service: PhotoService) {}

Você consegue inserir no construtor o tipo PhotoService, pois existe um "@Injectable({ providedIn: 'root' })" em photo.service.ts assim como será possível também inserir em outro constructor o PhotoListResolver, por existir um Injectable no mesmo.

Fala Mauricio, é isso mesmo, você pegou a ideia.

Abraços e bons estudos.