Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Inyección de Servicios en un Componente | Services and Dependency Injection in Angular
Introducción a Angular

bookInyección de Servicios en un Componente

Has creado el TaskService, que se encarga de almacenar y gestionar la lista de tareas. Sin embargo, el servicio por sí solo no interactúa con la interfaz de usuario. Para obtener los datos del servicio en la plantilla del componente, es necesario inyectar el servicio en el componente correspondiente.

Ahora verás cómo Angular ayuda automáticamente a conectar servicios con componentes utilizando la Inyección de Dependencias (DI) y cómo funciona el servicio dentro del componente.

¿Qué es la Inyección de Dependencias?

Note
Definición

Inyección de Dependencias (DI) es un patrón de diseño donde Angular inyecta automáticamente las dependencias requeridas (como servicios) en el constructor de un componente.

Gracias a DI, los componentes no crean instancias de servicios por sí mismos — simplemente reciben una instancia ya creada. Angular se encarga de proporcionar los objetos necesarios a quienes los requieran.

Esto funciona porque el servicio está decorado con:

@Injectable({
  providedIn: 'root'
})

Este decorador indica a Angular que cree una única instancia (singleton) del servicio para toda la aplicación y la ponga a disposición para DI.

Inyección del Servicio en un Componente

Ahora, vamos a inyectar el TaskService en el TaskListComponent para que pueda obtener la lista de tareas e interactuar con ella.

Así es como se ve el código del componente:

task-list.ts

task-list.ts

copy

Importamos el TaskService, la interfaz Task y otros componentes y módulos necesarios para la plantilla.

En el constructor del componente, agregamos el servicio mediante Inyección de Dependencias:

task-list.ts

task-list.ts

copy

Se almacena como un campo privado para utilizarlo en los métodos del componente. Justo después de que se crea el componente (dentro del constructor), obtenemos la lista de tareas. Esta lista se utiliza luego en la plantilla HTML.

Los métodos deleteTask y toggleStatus llaman a las funciones del servicio para eliminar una tarea o cambiar su estado, y luego actualizan el arreglo local tasks para que la interfaz de usuario refleje los cambios.

Este enfoque mantiene el componente sencillo: no sabe cómo se almacena o maneja la información — simplemente solicita al servicio que la actualice. Esto separa las responsabilidades: los componentes gestionan la vista y los servicios gestionan los datos.

1. ¿Qué es la Inyección de Dependencias (DI) en Angular?

2. ¿Por qué actualizamos this.tasks después de llamar a deleteTask o toggleStatus?

question mark

¿Qué es la Inyección de Dependencias (DI) en Angular?

Select the correct answer

question mark

¿Por qué actualizamos this.tasks después de llamar a deleteTask o toggleStatus?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.13

bookInyección de Servicios en un Componente

Desliza para mostrar el menú

Has creado el TaskService, que se encarga de almacenar y gestionar la lista de tareas. Sin embargo, el servicio por sí solo no interactúa con la interfaz de usuario. Para obtener los datos del servicio en la plantilla del componente, es necesario inyectar el servicio en el componente correspondiente.

Ahora verás cómo Angular ayuda automáticamente a conectar servicios con componentes utilizando la Inyección de Dependencias (DI) y cómo funciona el servicio dentro del componente.

¿Qué es la Inyección de Dependencias?

Note
Definición

Inyección de Dependencias (DI) es un patrón de diseño donde Angular inyecta automáticamente las dependencias requeridas (como servicios) en el constructor de un componente.

Gracias a DI, los componentes no crean instancias de servicios por sí mismos — simplemente reciben una instancia ya creada. Angular se encarga de proporcionar los objetos necesarios a quienes los requieran.

Esto funciona porque el servicio está decorado con:

@Injectable({
  providedIn: 'root'
})

Este decorador indica a Angular que cree una única instancia (singleton) del servicio para toda la aplicación y la ponga a disposición para DI.

Inyección del Servicio en un Componente

Ahora, vamos a inyectar el TaskService en el TaskListComponent para que pueda obtener la lista de tareas e interactuar con ella.

Así es como se ve el código del componente:

task-list.ts

task-list.ts

copy

Importamos el TaskService, la interfaz Task y otros componentes y módulos necesarios para la plantilla.

En el constructor del componente, agregamos el servicio mediante Inyección de Dependencias:

task-list.ts

task-list.ts

copy

Se almacena como un campo privado para utilizarlo en los métodos del componente. Justo después de que se crea el componente (dentro del constructor), obtenemos la lista de tareas. Esta lista se utiliza luego en la plantilla HTML.

Los métodos deleteTask y toggleStatus llaman a las funciones del servicio para eliminar una tarea o cambiar su estado, y luego actualizan el arreglo local tasks para que la interfaz de usuario refleje los cambios.

Este enfoque mantiene el componente sencillo: no sabe cómo se almacena o maneja la información — simplemente solicita al servicio que la actualice. Esto separa las responsabilidades: los componentes gestionan la vista y los servicios gestionan los datos.

1. ¿Qué es la Inyección de Dependencias (DI) en Angular?

2. ¿Por qué actualizamos this.tasks después de llamar a deleteTask o toggleStatus?

question mark

¿Qué es la Inyección de Dependencias (DI) en Angular?

Select the correct answer

question mark

¿Por qué actualizamos this.tasks después de llamar a deleteTask o toggleStatus?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3
some-alt