[angular] Angular 폼 컴포넌트 간 데이터 연결

Angular 애플리케이션을 개발하는 과정에서 폼 컴포넌트 간에 데이터를 연결하는 것은 매우 중요합니다. 이를 통해 사용자 입력을 쉽게 처리하고 상태를 유지할 수 있습니다.

FormControl과 FormGroup

Angular에서는 FormControl과 FormGroup을 사용하여 폼 데이터를 관리합니다. FormControl은 단일 폼 컨트롤의 값을 다루고, FormGroup은 관련된 여러 FormControl을 그룹화하여 폼을 다루는 데 사용됩니다.

import { Component } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';

@Component({
  selector: 'app-example-form',
  template: `
    <form [formGroup]="exampleForm">
      <input formControlName="name" />
      <input formControlName="email" />
    </form>
  `
})
export class ExampleFormComponent {
  exampleForm = new FormGroup({
    name: new FormControl(''),
    email: new FormControl('')
  });
}

위 예제에서는 exampleForm FormGroup을 사용하여 nameemail FormControl을 다루고 있습니다.

데이터 바인딩

Angular에서는 다음과 같은 다양한 방법을 통해 데이터를 컴포넌트 간에 연결할 수 있습니다.

양방향 데이터 바인딩

<input [(ngModel)]="name" />

위 방법은 폼 컨트롤과 컴포넌트 클래스의 데이터를 양방향으로 바인딩합니다.

FormGroup과 FormControl 데이터 바인딩

<input formControlName="name" />

위 방법은 FormGroup 내에 정의된 FormControl과 연결합니다.

FormControl 값 검증 및 상태 접근

this.exampleForm.get('name')?.value;
this.exampleForm.get('name')?.valid;

위와 같이 get 메서드를 사용하여 FormControl의 값을 가져오거나 유효성을 확인할 수 있습니다.

결론

Angular에서는 FormControl과 FormGroup을 사용하여 폼 데이터를 처리하고, 데이터 바인딩을 통해 컴포넌트 간에 데이터를 손쉽게 연결할 수 있습니다.

이러한 접근 방식을 활용하여 사용자 입력을 처리하고, 폼 상태를 관리함으로써 보다 효과적인 웹 애플리케이션을 개발할 수 있습니다.

참고문헌: