Objetivo
Aprender a crear y utilizar servicios en Angular para manejar lógica de negocio y datos.
Conceptos Básicos
Los servicios en Angular permiten encapsular lógica de negocio y datos, y se pueden inyectar en componentes u otros servicios. Esto fomenta la reutilización de código y facilita el mantenimiento de la aplicación.
Crear un Servicio
En la terminal, navega al directorio del proyecto y ejecuta:
ng generate service my-service
Esto generará un nuevo servicio llamado my-service
en tu proyecto.
Editar el Servicio
Abre src/app/my-service.service.ts
y agrega la siguiente lógica:
import { Injectable } from '@angular/core';
@Injectable({
providedIn.'root'
})
export class MyService {
getMessage().string {
return 'Mensaje desde el Servicio';
}
}
Usar el Servicio en un Componente
Abre src/app/my-component/my-component.component.ts
y modifica la clase para usar el servicio:
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my-service.service';
@Component({
selector.'app-my-component',
templateUrl.'./my-component.component.html',
styleUrls.['./my-component.component.css']
})
export class MyComponent implements OnInit {
message.string = '';
constructor(private myService.MyService) {}
ngOnInit().void {
this.message = this.myService.getMessage();
}
}
se muestra un ejemplo completo de cómo definir y usar un servicio en Angular.
1. Crear un Nuevo Proyecto Angular
ng new my-angular-app
cd my-angular-app
2. Generar el Servicio
ng generate service my-service
3. Definición del Servicio (my-service.service.ts
)
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class MyService {
constructor() { }
getMessage(): string {
return 'Mensaje desde el Servicio';
}
}
4. Crear un Componente (my-component
)
ng generate component my-component
5. Usar el Servicio en el Componente (my-component.component.ts
)
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my-service.service';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
message: string;
constructor(private myService: MyService) { }
ngOnInit(): void {
this.message = this.myService.getMessage();
}
}
6. Plantilla del Componente (my-component.component.html
)
<p>{{ message }}</p>
Ejercicio
Crea un nuevo servicio en tu proyecto Angular, edita la lógica del servicio, e inyecta el servicio en un componente para utilizarlo. Verifica que el mensaje se muestre correctamente en el navegador.