Binding Dua Arah Peristiwa di Angular
Di Angular juga dimungkinkan untuk membuat binding dua arah peristiwa dari kedua komponen: induk dan anak. Mari kita buat di template HTML anak sebuah input dengan binding dua arah nama pengguna dan fungsi yang mengubah nama:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Mari kita beralih ke komponen anak kita dan
impor dekorator @Input ke dalamnya.
Dibutuhkan untuk bekerja dengan input:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Selanjutnya, kita bind dekorator @Input
ke nama pengguna. Dan dekorator @Output
kita bind ke objek userNameChange,
yang akan dipanggil dalam fungsi onNameChange:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Sekarang beralihlah ke komponen utama dan tambahkan properti nama ke kelasnya:
export class AppComponent {
name: string = 'alex';
}
Dan di template HTML komponen induk,
lakukan binding dua arah properti
userName dengan nilai properti
name dari komponen induk:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Implementasikan binding dua arah peristiwa komponen induk dan anak sesuai dengan contoh yang diberikan dalam pelajaran.
Berdasarkan tugas sebelumnya, buatlah binding dua arah untuk usia pengguna.