Angular'da Olaylarda Çift Yönlü Bağlama
Ayrıca Angular'da her iki bileşenin olaylarını çift yönlü bağlamak mümkündür: ebeveyn ve alt bileşen. Şimdi alt bileşenin HTML şablonunda, kullanıcı adı için çift yönlü bağlama ve adı değiştiren bir fonksiyona sahip bir input oluşturalım:
<input [ngModel]="userName" (ngModelChange)="onNameChange($event)" />
Alt bileşenimize geçelim ve
içine @Input dekoratörünü
içe aktaralım.
Input'larla çalışmak için gereklidir:
import { Component, Input, Output, EventEmitter } from '@angular/core';
Sonra, @Input dekoratörünü
kullanıcı adına bağlayın. Ve @Output dekoratörünü
onNameChange fonksiyonunda çağrılacak olan
userNameChange nesnesine bağlayın:
export class UserComponent {
@Input() userName: string = '';
@Output() userNameChange = new EventEmitter<string>();
onNameChange(model: string) {
this.userName = model;
this.userNameChange.emit(model);
}
}
Şimdi ana bileşene geçelim ve sınıfına bir ad özelliği ekleyelim:
export class AppComponent {
name: string = 'alex';
}
Ebeveyn bileşenin HTML şablonunda ise
userName özelliğini, ebeveyn bileşenin
name özelliğinin değeri ile çift yönlü
bağlayın:
<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Derste verilen örneğe göre, ebeveyn ve alt bileşen olaylarında çift yönlü bağlamayı uygulayın.
Önceki göreve dayanarak, kullanıcının yaşı için çift yönlü bağlama yapın.