Injeçã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?
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
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
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
?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
Injeçã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?
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
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
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
?
Obrigado pelo seu feedback!