L'enllaç d'esdeveniments és una característica fonamental d'Angular que permet als desenvolupadors respondre a les accions dels usuaris, com ara clics de botons, moviments del ratolí, tecles pressionades, etc. En aquesta secció, aprendrem com utilitzar l'enllaç d'esdeveniments per capturar i gestionar aquests esdeveniments en les nostres aplicacions Angular.
Conceptes clau
- Enllaç d'esdeveniments: Permet associar esdeveniments del DOM amb mètodes del component.
- Sintaxi: Utilitza parèntesis per envoltar l'esdeveniment del DOM.
- Gestió d'esdeveniments: Els mètodes del component gestionen la lògica quan es produeix un esdeveniment.
Sintaxi bàsica
La sintaxi bàsica per a l'enllaç d'esdeveniments en Angular és la següent:
En aquest exemple, l'esdeveniment click
del botó està enllaçat al mètode onClick()
del component.
Exemple pràctic
Pas 1: Crear el component
Primer, creem un component anomenat EventBindingComponent
.
Pas 2: Definir el mètode del component
Afegim un mètode onClick
al nostre component per gestionar l'esdeveniment de clic.
// event-binding.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-event-binding', templateUrl: './event-binding.component.html', styleUrls: ['./event-binding.component.css'] }) export class EventBindingComponent { message: string = ''; onClick() { this.message = 'Botó clicat!'; } }
Pas 3: Enllaçar l'esdeveniment en la plantilla
Ara, enllacem l'esdeveniment click
del botó al mètode onClick
en la plantilla del component.
<!-- event-binding.component.html --> <button (click)="onClick()">Fes clic aquí</button> <p>{{ message }}</p>
Pas 4: Executar l'aplicació
Executem l'aplicació per veure el resultat.
Quan fem clic al botó, el missatge "Botó clicat!" apareixerà a la pàgina.
Enllaç d'esdeveniments amb paràmetres
Podem passar paràmetres als mètodes del component des de l'enllaç d'esdeveniments.
Exemple
Enllaç d'esdeveniments amb l'objecte d'esdeveniment
Podem accedir a l'objecte d'esdeveniment del DOM en el nostre mètode del component.
Exemple
// event-binding.component.ts inputText: string = ''; onInput(event: Event) { const inputElement = event.target as HTMLInputElement; this.inputText = inputElement.value; }
Exercicis pràctics
Exercici 1: Canviar el color de fons
Crea un component que canviï el color de fons d'un div
quan es faci clic en un botó.
Solució
// background-color.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-background-color', templateUrl: './background-color.component.html', styleUrls: ['./background-color.component.css'] }) export class BackgroundColorComponent { backgroundColor: string = 'white'; changeColor() { this.backgroundColor = this.backgroundColor === 'white' ? 'blue' : 'white'; } }
<!-- background-color.component.html --> <div [style.background-color]="backgroundColor" style="width: 200px; height: 200px;"></div> <button (click)="changeColor()">Canvia el color</button>
Exercici 2: Comptador de clics
Crea un component que mostri un comptador que s'incrementi cada vegada que es faci clic en un botó.
Solució
// click-counter.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-click-counter', templateUrl: './click-counter.component.html', styleUrls: ['./click-counter.component.css'] }) export class ClickCounterComponent { count: number = 0; increment() { this.count++; } }
<!-- click-counter.component.html --> <p>Comptador: {{ count }}</p> <button (click)="increment()">Incrementa</button>
Resum
En aquesta secció, hem après com utilitzar l'enllaç d'esdeveniments en Angular per capturar i gestionar esdeveniments del DOM. Hem vist exemples pràctics de com enllaçar esdeveniments a mètodes del component, passar paràmetres i accedir a l'objecte d'esdeveniment. També hem practicat amb exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar cap a l'enllaç de dades bidireccional en el següent tema.
Curs d'Angular
Mòdul 1: Introducció a Angular
- Què és Angular?
- Configuració de l'entorn de desenvolupament
- Arquitectura d'Angular
- Primera aplicació Angular
Mòdul 2: Components d'Angular
- Comprendre els components
- Crear components
- Plantilles de components
- Estils de components
- Interacció de components
Mòdul 3: Enllaç de dades i directives
- Interpolació i enllaç de propietats
- Enllaç d'esdeveniments
- Enllaç de dades bidireccional
- Directives integrades
- Directives personalitzades
Mòdul 4: Serveis i injecció de dependències
Mòdul 5: Enrutament i navegació
Mòdul 6: Formularis a Angular
Mòdul 7: Client HTTP i observables
- Introducció al client HTTP
- Fer sol·licituds HTTP
- Gestionar respostes HTTP
- Utilitzar observables
- Gestió d'errors
Mòdul 8: Gestió d'estat
- Introducció a la gestió d'estat
- Utilitzar serveis per a la gestió d'estat
- NgRx Store
- NgRx Effects
- NgRx Entity
Mòdul 9: Proves a Angular
- Proves unitàries
- Proves de components
- Proves de serveis
- Proves de cap a cap
- Simulació de dependències
Mòdul 10: Conceptes avançats d'Angular
- Angular Universal
- Optimització del rendiment
- Internacionalització (i18n)
- Tubs personalitzats
- Animacions d'Angular