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:

app/user/user.component.html<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:

app/user/user.component.tsimport { 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:

app/user/user.component.tsexport 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:

app/app.component.tsexport 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:

ap.component.html<user-data [(userName)]="name"></user-data>
<p>You choose name: {{ name }}</p>
Задание 1

Derste verilen örneğe göre, ebeveyn ve alt bileşen olaylarında çift yönlü bağlamayı uygulayın.

Задание 2

Önceki göreve dayanarak, kullanıcının yaşı için çift yönlü bağlama yapın.