L'enllaç de dades bidireccional és una característica poderosa d'Angular que permet sincronitzar automàticament les dades entre el model i la vista. Això significa que qualsevol canvi en el model es reflecteix immediatament en la vista i viceversa.
Conceptes clau
- Model: Representa les dades de l'aplicació.
- Vista: Representa la interfície d'usuari.
- Enllaç de dades bidireccional: Sincronització automàtica entre el model i la vista.
Com funciona l'enllaç de dades bidireccional
L'enllaç de dades bidireccional en Angular es realitza mitjançant la directiva ngModel. Aquesta directiva permet vincular una propietat del model a un element de formulari de la vista, com ara un camp de text.
Sintaxi
[(ngModel)]: La sintaxi de doble parèntesi i claudàtors indica l'enllaç de dades bidireccional.property: La propietat del model que es vincula a l'element de la vista.
Exemple pràctic
A continuació, es mostra un exemple pràctic d'enllaç de dades bidireccional en Angular.
Pas 1: Configuració del mòdul
Primer, assegura't d'importar el mòdul FormsModule en el mòdul principal de l'aplicació (app.module.ts).
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms'; // Importa FormsModule
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule // Afegeix FormsModule als imports
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }Pas 2: Creació del component
Crea un component senzill amb una propietat name en el fitxer app.component.ts.
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name: string = '';
}Pas 3: Plantilla del component
Utilitza l'enllaç de dades bidireccional en la plantilla del component (app.component.html).
<div>
<label for="name">Nom:</label>
<input id="name" [(ngModel)]="name">
</div>
<p>Hola, {{ name }}!</p>Explicació del codi
<input id="name" [(ngModel)]="name">: L'elementinputestà vinculat a la propietatnamedel model. Qualsevol canvi en el camp de text actualitza la propietatnamei viceversa.<p>Hola, {{ name }}!</p>: La propietatnamees mostra en la vista utilitzant la interpolació.
Exercici pràctic
Objectiu
Crea un formulari senzill amb camps per al nom i el correu electrònic, utilitzant l'enllaç de dades bidireccional.
Instruccions
- Afegeix els camps
emailinameal componentAppComponent. - Utilitza l'enllaç de dades bidireccional per vincular aquests camps a elements de formulari en la plantilla.
- Mostra els valors dels camps en la vista.
Solució
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name: string = '';
email: string = '';
}app.component.html
<div>
<label for="name">Nom:</label>
<input id="name" [(ngModel)]="name">
</div>
<div>
<label for="email">Correu electrònic:</label>
<input id="email" [(ngModel)]="email">
</div>
<p>Hola, {{ name }}!</p>
<p>El teu correu electrònic és: {{ email }}</p>Errors comuns
- Oblidar importar
FormsModule: Si no importesFormsModuleen el mòdul principal, l'enllaç de dades bidireccional no funcionarà. - Sintaxi incorrecta: Assegura't d'utilitzar la sintaxi correcta
[(ngModel)]per a l'enllaç de dades bidireccional.
Resum
L'enllaç de dades bidireccional és una característica essencial d'Angular que facilita la sincronització automàtica entre el model i la vista. Utilitzant la directiva ngModel, pots crear formularis interactius i dinàmics amb facilitat. Practica amb exemples senzills per comprendre millor aquest concepte i aplicar-lo en projectes més complexos.
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
