폼을 템플릿에서 조작하는 대신, 코드로 조작하려면 반응형 폼을 사용하는 것이 좋습니다.
참고: 자세한 내용은 반응형 폼 심화 가이드 문서를 참고하세요.
이번 튜토리얼에서는 반응형 폼을 어떻게 구성하는지 알아봅시다.
-
ReactiveForms
모듈을 로드합니다app.ts
파일을 열고@angular/forms
패키지로 제공되는ReactiveFormsModule
을 로드한 후에 컴포넌트imports
배열에 추가합니다.import { ReactiveFormsModule } from '@angular/forms';@Component({ selector: 'app-root', template: ` <form> <label>Name <input type="text" /> </label> <label>Email <input type="email" /> </label> <button type="submit">Submit</button> </form> `, imports: [ReactiveFormsModule],})
-
FormControls로
FormGroup
객체를 생성하세요반응형 폼은 폼 컨트롤을 표현하는 용도로
FormControl
클래스를 사용합니다. 그리고 폼 컨트롤을 효율적으로 다루기 위해 객체 구조로 묶을 때는FormGroup
클래스를 사용합니다.@angular/forms
패키지로 제공되는FormControl
과FormGroup
을 로드해서 폼 그룹을 생성한 후에, 폼 그룹 안에name
,email
프로퍼티로 FormControl을 선언합니다.import {ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms';...export class App { profileForm = new FormGroup({ name: new FormControl(''), email: new FormControl(''), });}
-
FormGroup과 FormControl을 폼과 연결하세요
FormGroup
은[formGroup]
디렉티브를 사용해서 폼과 연결할 수 있습니다.그리고
FormControl
은formControlName
디렉티브를 사용해서 개별 폼 필드와 연결할 수 있습니다. 템플릿에서 폼 코드를 이렇게 수정해 보세요:<form [formGroup]="profileForm"> <label> Name <input type="text" formControlName="name" /> </label> <label> Email <input type="email" formControlName="email" /> </label> <button type="submit">Submit</button></form>
-
폼을 수정합니다
폼 그룹 안에 있는 데이터에 접근하려면
FormGroup
객체의 값을 참조하면 됩니다. 템플릿을 다음과 같이 수정합니다:...<h2>Profile Form</h2><p>Name: {{ profileForm.value.name }}</p><p>Email: {{ profileForm.value.email }}</p>
-
FormGroup 값에 접근해 보세요
컴포넌트 클래스에
handleSubmit
함수를 추가해서 폼 제출 이벤트를 처리해 봅시다. 이 메서드는 폼 안에 있는 값을 표시합니다.컴포넌트 클래스에
handleSubmit()
메서드를 추가해 봅시다.handleSubmit() { alert( this.profileForm.value.name + ' | ' + this.profileForm.value.email );}
-
폼에
ngSubmit
을 추가합니다이제 폼 값에 접근할 수 있으니, 폼 제출 이벤트를
handleSubmit
메서드로 전달해 봅시다. Angular는 이런 경우를 위해ngSubmit
이라는 이벤트 핸들러를 제공합니다. 폼 제출 이벤트가 발생했을 때 이 이벤트를handleSubmit
메서드로 받을 수 있도록 폼 엘리먼트를 수정해 봅시다.<form [formGroup]="profileForm" (ngSubmit)="handleSubmit()">
이렇게 Angular에서 반응형 폼을 사용하는 방법을 알게 되었군요.
정말 잘 하셨습니다. 이제 폼 유효성 검사는 어떻게 하는지 알아봅시다.