En aquest tema, aprendrem a utilitzar serveis Angular dins d'una aplicació Ionic. Els serveis són una part fonamental de l'arquitectura Angular, ja que permeten encapsular la lògica de negoci i compartir dades entre components de manera eficient.
Objectius
- Entendre què són els serveis Angular i per què són útils.
- Aprendre a crear i injectar serveis en una aplicació Ionic.
- Veure exemples pràctics d'ús de serveis per gestionar dades.
Què és un Servei Angular?
Un servei Angular és una classe que conté lògica de negoci i pot ser compartida entre diferents components de l'aplicació. Els serveis són ideals per a tasques com:
- Fer peticions HTTP.
- Gestionar dades compartides.
- Implementar lògica de negoci complexa.
Creant un Servei Angular
Pas 1: Crear el Servei
Utilitzarem l'eina de línia de comandes Angular CLI per crear un servei. Obre el terminal i executa la següent comanda:
Això crearà dos fitxers: data.service.ts
i data.service.spec.ts
(per a proves).
Pas 2: Implementar el Servei
Obre el fitxer data.service.ts
i implementa el servei. A continuació, es mostra un exemple bàsic d'un servei que gestiona una llista d'elements:
import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class DataService { private items: string[] = []; constructor() { } addItem(item: string) { this.items.push(item); } getItems(): string[] { return this.items; } clearItems() { this.items = []; } }
Pas 3: Injectar el Servei en un Component
Per utilitzar el servei en un component, primer hem d'injectar-lo en el constructor del component. A continuació, es mostra com fer-ho:
import { Component } from '@angular/core'; import { DataService } from '../services/data.service'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { items: string[] = []; constructor(private dataService: DataService) {} addItem(item: string) { this.dataService.addItem(item); this.items = this.dataService.getItems(); } clearItems() { this.dataService.clearItems(); this.items = []; } }
Pas 4: Utilitzar el Servei en la Vista
Finalment, podem utilitzar el servei en la vista del component (home.page.html
):
<ion-header> <ion-toolbar> <ion-title> Ionic Angular Service Example </ion-title> </ion-toolbar> </ion-header> <ion-content> <ion-item> <ion-input #itemInput placeholder="Enter item"></ion-input> <ion-button (click)="addItem(itemInput.value)">Add Item</ion-button> </ion-item> <ion-list> <ion-item *ngFor="let item of items"> {{ item }} </ion-item> </ion-list> <ion-button (click)="clearItems()">Clear Items</ion-button> </ion-content>
Exercici Pràctic
Objectiu
Crear un servei que faci una petició HTTP a una API pública i mostri les dades en un component.
Instruccions
-
Crear el Servei HTTP:
- Utilitza Angular CLI per crear un servei anomenat
api
. - Implementa una funció que faci una petició GET a una API pública (per exemple, https://jsonplaceholder.typicode.com/posts).
- Utilitza Angular CLI per crear un servei anomenat
-
Injectar el Servei en un Component:
- Injecta el servei en un component (per exemple,
HomePage
). - Utilitza el servei per obtenir les dades de l'API i mostrar-les en la vista.
- Injecta el servei en un component (per exemple,
Solució
api.service.ts:
import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class ApiService { private apiUrl = 'https://jsonplaceholder.typicode.com/posts'; constructor(private http: HttpClient) { } getPosts(): Observable<any> { return this.http.get(this.apiUrl); } }
home.page.ts:
import { Component, OnInit } from '@angular/core'; import { ApiService } from '../services/api.service'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage implements OnInit { posts: any[] = []; constructor(private apiService: ApiService) {} ngOnInit() { this.apiService.getPosts().subscribe(data => { this.posts = data; }); } }
home.page.html:
<ion-header> <ion-toolbar> <ion-title> API Data </ion-title> </ion-toolbar> </ion-header> <ion-content> <ion-list> <ion-item *ngFor="let post of posts"> <ion-label> <h2>{{ post.title }}</h2> <p>{{ post.body }}</p> </ion-label> </ion-item> </ion-list> </ion-content>
Conclusió
En aquest tema, hem après què són els serveis Angular i com utilitzar-los dins d'una aplicació Ionic. Hem vist com crear un servei, injectar-lo en un component i utilitzar-lo per gestionar dades. Els serveis són una eina poderosa per organitzar i reutilitzar la lògica de negoci en les nostres aplicacions.
En el següent tema, explorarem com fer peticions HTTP i treballar amb APIs de manera més detallada.
Curs de Desenvolupament Ionic
Mòdul 1: Introducció a Ionic
- Què és Ionic?
- Configuració de l'Entorn de Desenvolupament
- Creant la Teva Primera App Ionic
- Entenent l'Estructura del Projecte
- Executant i Depurant la Teva App
Mòdul 2: Components Bàsics i Navegació
- Visió General dels Components Ionic
- Utilitzant Botons i Icones Ionic
- Creant i Utilitzant Pàgines
- Navegació i Enrutament
- Pestanyes i Menús Laterals
Mòdul 3: Estilització i Tematització
- Introducció a l'Estilització Ionic
- Utilitzant CSS i SCSS en Ionic
- Tematitzant la Teva App Ionic
- Disseny Responsiu en Ionic
- Personalitzant Components Ionic
Mòdul 4: Treballant amb Dades
- Introducció al Binding de Dades
- Utilitzant Serveis Angular
- Peticions HTTP i APIs
- Emmagatzemant Dades Localment
- Utilitzant Ionic Storage
Mòdul 5: Components i Funcionalitats Avançades
- Utilitzant Formularis Ionic
- Validació i Gestió d'Errors
- Utilitzant Plugins Ionic Native i Cordova
- Accedint a Funcionalitats del Dispositiu
- Notificacions Push
Mòdul 6: Proves i Desplegament
- Proves Unitàries en Ionic
- Proves de Cap a Cap
- Construint per a Producció
- Desplegant a les Botigues d'Aplicacions
- Integració i Lliurament Continu