⊗jsagPmCMEDB 68 of 97 menu

Binding bidirezionale degli eventi in Angular

In Angular è anche possibile creare un binding bidirezionale degli eventi di entrambi i componenti: genitore e figlio. Creiamo nel template HTML figlio un input con un binding bidirezionale del nome utente e una funzione che cambia il nome:

<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />

Passiamo al nostro componente figlio e importiamo in esso il decoratore @Input. È necessario per lavorare con gli input:

import { Component, Input, Output, EventEmitter } from '@angular/core';

Successivamente, colleghiamo il decoratore @Input al nome utente. E il decoratore @Output lo colleghiamo all'oggetto userNameChange, che verrà chiamato nella funzione onNameChange:

export class UserComponent { @Input() userName: string = ''; @Output() userNameChange = new EventEmitter<string>(); onNameChange(model: string) { this.userName = model; this.userNameChange.emit(model); } }

Ora passiamo al componente principale e aggiungiamo alla sua classe la proprietà nome:

export class AppComponent { name: string = 'alex'; }

E nel template HTML del componente genitore eseguiamo il binding bidirezionale della proprietà userName con il valore della proprietà name del componente genitore:

<user-data [(userName)]="name"></user-data> <p>Hai scelto il nome: {{ name }}</p>

Implementa il binding bidirezionale degli eventi dei componenti genitore e figlio secondo l'esempio fornito nella lezione.

Basandoti sul compito precedente, crea un binding bidirezionale per l'età dell'utente.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta