ngForm์ด๋?
์ํ๋ ์์์ ๋ง๋ค์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๊ฒ ๋์์ฃผ๋ ์ง์์ด ์ค ํ๋์ด๋ค.
์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด html ํ์ผ์ ์์ฑํ๋ค.
์ฌ๊ธฐ์ ngSubmit์ ์์์ ์ ๋ณด๋ฅผ ๊ธฐ์ ํ๊ณ ํด๋น ์ ๋ณด(๋ฐ์ดํฐ)๋ฅผ ์ ์ถํ ๋ ์ฌ์ฉ๋๋ค.
<form #์ํ๋ํผ์ด๋ฆ = "ngForm" (ngSubmit) = "ํจ์(์ํ๋ํผ์ด๋ฆ)">
ํด๋น ํผ ์์ ์ํ๋ ์ ๋ณด๋ฅผ ๊ธฐ์ ํ elements๋ค์ ๋ฃ๊ณ ๋ฐ์ดํฐ๊ฐ ํ์ํ elements์ ngModel ์ง์์ด๋ฅผ ์ฌ์ฉํ๋ค.
ngModel์ FormControl์ ์ผ์ข ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ ๋ ์ฌ์ฉํ๋ ์ง์์ด๋ค.
app.module.ts
ngForm์ FormsModule์ ํฌํจ๋์ด ์๋ ์ง์์ด์ด๋ฏ๋ก FormsModule์ ์ถ๊ฐํด์ค์ผ ํ๋ค.
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, FormsModule],
providers: [],
bootstrap: [AppComponent],
})
app.component.html
์๋์ ๊ฐ์ด ์ ์ ์ ์ด๋ฆ,๋์ด,์ด๋ฉ์ผ,์๊ธฐ์๊ฐ๋ฅผ ๋ฐ์ ์ ์๋ ํผ(์์)์ ๋ง๋ค ์ ์๋ค.
<form #userInfoform = "ngForm" (ngSubmit) = "onSubmit(userInfoform)" >
<input type = "text" name = "name" placeholder = "์ด๋ฆ" ngModel required>
<br/>
<input type = "number" name = "age" placeholder = "๋์ด" ngModel>
<br/>
<input type = "email" name = "email" placeholder = "์ด๋ฉ์ผ" ngModel>
<br/>
<textarea name = "message" placeholder = "์๊ธฐ์๊ฐ" ngModel></textarea>
<br/>
<button>ํ์ธ</button>
</form>
app.component.ts
์์์ ์ ์ถํ์ ๋์ ์์ ์ ์ฒ๋ฆฌํ onSubmit ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ ์ธ์๊ฐ์ผ๋ก NgForm์ ๋ฐ์์ค๋ค.
export class AppComponent {
users: User[] = [];
onSubmit(form: NgForm) {
this.addUser(form.value);
console.log(this.users);
}
addUser(user: User) {
this.users.push(user);
}
}
user.ts
ํผ(์์)์ ๋ง๊ฒ ์ ์ ์ ํ๋กํผํฐ๋ฅผ ์ ์ํด์ค๋ค.
export interface User {
name: string;
email: string;
age: number;
introduction: string;
}
Test
์๋์ ๊ฐ์ด ์ ์ ์ ๋ณด๋ฅผ ๊ธฐ์ ํ ๋ค ํ์ธ ๋ฒํผ์ ๋๋ฅด๋ฉด
์์์ ๊ธฐ์ ํ ์ ๋ณด๊ฐ ๋ด๊ธด ์ ์ ๊ฐ ์ถ๊ฐ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
๊ฐ์ฒด๋ฟ๋ง ์๋๋ผ ์๋์ ๊ฐ์ด ํผ์ value์ ํน์ ๊ฐ์ ๋ฐ์์ฌ ์๋ ์๋ค.
onSubmit(form: NgForm) {
console.log(form.value.name);
}
ํผ ์์ ์ด๋ฆ์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
Required
์์์ ์ด๋ฆ์ ์ ๋ input์ required๋ผ๊ณ ์ ํ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๊ฒ์ ๋ฐ๋์ ์ฑ์์ ธ์ผ ํ๋ค๋ ์๋ฏธ๋ก ์ด๊ฒ์ ํตํด์ validation(์ ํจ์ฑ)์ ํ๋จํ ์ ์๋ค.
...
<input type = "text" name = "name" placeholder = "์ด๋ฆ" ngModel required>
...
onSubmit์์ form์ ์ ํจ์ฑ์ ์ถ๋ ฅํด๋ณด๋ฉด
onSubmit(form: NgForm) {
this.addUser(form.value);
console.log(form.valid)
}
์๋์ ๊ฐ์ด required๋ input์ ์ฑ์ฐ์ง ์์ผ๋ฉด
false๊ฐ ์ถ๋ ฅ๋๋ค.
๋๊ธ