# Двусторонняя привязка событий в Angular

Также в Angular можно сделать двустороннюю привязку событий обоих компонентов: родительского и дочернего. Давайте сделаем в дочернем HTML-шаблоне инпут с двусторонней привязкой имени пользователя и функции, меняющей имя:

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

Перейдем в наш дочерний компонент и импортируем в него декоратор `@Input`. Он нужен для работы с инпутами :

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

Далее привязываем декоратор `@Input` к имени пользователя. А декоратор `@Output` привязываем к объекту `userNameChange`, который будет вызываться в функции `onNameChange`:

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

Теперь переходим в главный компонент и добавляем к его классу свойство имя:

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

А в HTML-шаблоне родительского компонента выполняем двустороннюю привязку свойства `userName` со значением свойства `name` родительского компонента:

`<user-data [(userName)]="name"></user-data> <p>You choose name: {{ name }}</p>`

Реализуйте двустороннюю привязку событий родительского и дочернего компонентов согласно приведенному в уроке примеру.

На основе предыдущей задачи сделайте двустороннюю привязку возраста пользователя.

← →
↑