Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Injeção de Serviço em um Componente | Services and Dependency Injection in Angular
Introdução ao Angular

bookInjeção de Serviço em um Componente

Você criou o TaskService, que é responsável por armazenar e gerenciar a lista de tarefas. No entanto, o serviço por si só não interage com a interface do usuário. Para obter os dados do serviço no template do componente, é necessário injetar o serviço no componente correspondente.

Agora, você verá como o Angular auxilia automaticamente na conexão de serviços com componentes usando a Injeção de Dependência (DI) e como o serviço funciona dentro do componente.

O que é Injeção de Dependência?

Note
Definição

Injeção de Dependência (DI) é um padrão de projeto em que o Angular injeta automaticamente as dependências necessárias (como serviços) no construtor de um componente.

Graças à Injeção de Dependência (DI), os componentes não criam instâncias de serviços por conta própria — eles simplesmente recebem uma instância já criada. O Angular se encarrega de fornecer os objetos necessários para quem precisar deles.

Isso funciona porque o serviço é decorado com:

@Injectable({
  providedIn: 'root'
})

Este decorador informa ao Angular para criar uma única instância (singleton) do serviço para todo o aplicativo e torná-la disponível para DI.

Injeção do Serviço em um Componente

Agora, vamos injetar o TaskService no TaskListComponent para que ele possa obter a lista de tarefas e interagir com ela.

Veja como fica o código do componente:

task-list.ts

task-list.ts

copy

Importação do TaskService, da interface Task e de outros componentes e módulos necessários para o template.

No construtor do componente, adição do serviço por meio de Injeção de Dependência:

task-list.ts

task-list.ts

copy

Armazenamento como campo privado para uso nos métodos do componente. Logo após a criação do componente (dentro do construtor), obtenção da lista de tarefas. Essa lista é utilizada no template HTML.

Os métodos deleteTask e toggleStatus chamam as funções do serviço para excluir uma tarefa ou alternar seu status, e então atualizam o array local tasks para que a interface reflita as alterações.

Essa abordagem mantém o componente simples: ele não sabe como os dados são armazenados ou manipulados — apenas solicita ao serviço que os atualize. Isso separa as responsabilidades: componentes lidam com a visualização e serviços lidam com os dados.

1. O que é Injeção de Dependência (DI) no Angular?

2. Por que atualizamos this.tasks após chamar deleteTask ou toggleStatus?

question mark

O que é Injeção de Dependência (DI) no Angular?

Select the correct answer

question mark

Por que atualizamos this.tasks após chamar deleteTask ou toggleStatus?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.13

bookInjeção de Serviço em um Componente

Deslize para mostrar o menu

Você criou o TaskService, que é responsável por armazenar e gerenciar a lista de tarefas. No entanto, o serviço por si só não interage com a interface do usuário. Para obter os dados do serviço no template do componente, é necessário injetar o serviço no componente correspondente.

Agora, você verá como o Angular auxilia automaticamente na conexão de serviços com componentes usando a Injeção de Dependência (DI) e como o serviço funciona dentro do componente.

O que é Injeção de Dependência?

Note
Definição

Injeção de Dependência (DI) é um padrão de projeto em que o Angular injeta automaticamente as dependências necessárias (como serviços) no construtor de um componente.

Graças à Injeção de Dependência (DI), os componentes não criam instâncias de serviços por conta própria — eles simplesmente recebem uma instância já criada. O Angular se encarrega de fornecer os objetos necessários para quem precisar deles.

Isso funciona porque o serviço é decorado com:

@Injectable({
  providedIn: 'root'
})

Este decorador informa ao Angular para criar uma única instância (singleton) do serviço para todo o aplicativo e torná-la disponível para DI.

Injeção do Serviço em um Componente

Agora, vamos injetar o TaskService no TaskListComponent para que ele possa obter a lista de tarefas e interagir com ela.

Veja como fica o código do componente:

task-list.ts

task-list.ts

copy

Importação do TaskService, da interface Task e de outros componentes e módulos necessários para o template.

No construtor do componente, adição do serviço por meio de Injeção de Dependência:

task-list.ts

task-list.ts

copy

Armazenamento como campo privado para uso nos métodos do componente. Logo após a criação do componente (dentro do construtor), obtenção da lista de tarefas. Essa lista é utilizada no template HTML.

Os métodos deleteTask e toggleStatus chamam as funções do serviço para excluir uma tarefa ou alternar seu status, e então atualizam o array local tasks para que a interface reflita as alterações.

Essa abordagem mantém o componente simples: ele não sabe como os dados são armazenados ou manipulados — apenas solicita ao serviço que os atualize. Isso separa as responsabilidades: componentes lidam com a visualização e serviços lidam com os dados.

1. O que é Injeção de Dependência (DI) no Angular?

2. Por que atualizamos this.tasks após chamar deleteTask ou toggleStatus?

question mark

O que é Injeção de Dependência (DI) no Angular?

Select the correct answer

question mark

Por que atualizamos this.tasks após chamar deleteTask ou toggleStatus?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
some-alt