일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AWS
- 코사인 유사성 메트릭스
- esbuild
- apollo router
- cosine similarity metric
- Logrus
- kube-prometheus-stack
- m4 pro
- GoF
- intellij ide
- golang
- 사설 ip
- goland
- gitops
- UnBuffered channel
- go
- 오블완
- 티스토리챌린지
- javascript
- elasticsearch
- Buffered channel
- 배포 파이프라인
- 디자인패턴
- Infra
- Intellij
- Kubernetes
- 배포 프로세스
- http 413
- typescript
- body size
Archives
- Today
- Total
Fall in IT.
Angular4 폼(Form) 소개와 사용방법 본문
반응형
안녕하세요.
오늘은 Angular 4에서 Form에 대해서 간단한 설명과 사용방법을 알아보도록 하겠습니다.
폼이란?
- 일반적으로 form이란 서버에 전달하기 위한 사용자 입력 영역을 의미 합니다.
- 로그인, 회원가입 등 입력 영역에서 보통 form 엘리먼트를 사용하여 구현 합니다.
Angular 4의 폼 종류
- 템플릿 주도 검증
- 템플릿 외부에 별도의 검증 모듈을 두지 않고 템플릿 즉, html 상에서만 검증되게 하는 방식입니다.
- 검증 대상이 적고 단순한 검증을 수행할 때 적합한 방식 입니다. - 모델 주도 검증
- 템플릿 내부에서 검증을 수행하지 않고, 컴포넌트의 외부 모듈에서 검증되게 하는 방식입니다.
- 검증 과정이 복잡할 경우 적합한 방식 입니다.
템플릿 주도 검증에 대해서 간단한 예제코드를 통해 알아보도록 하겠습니다.
템플릿 주도 검증 예제
HTML
HTML
<!-- 템플릿 주도 검증 -->
<form #signInForm="ngForm" (submit)="submitForm()">
아이디: <input type="text" [(ngModel)]="user.userId" #userId="ngModel" name="id"
minlength="2" maxlength="10" required> {{userId.valid}}, {{userId.value}} <br>
패스워드: <input type="password" [(ngModel)]="user.userPassword" #userPassword="ngModel"
name="password" minlength="4" maxlength="10" required> {{userPassword.valid}},
{{userPassword.value}} <br>
이름: <input type="text" [(ngModel)]="user.userName" [ngModelOptions]="{standalone: true}">
<button type="submit" ion-button color="appBlue" [disabled]="signInForm.invalid">로그인</button>
</form>
CLASS
export class SignInPage {
user = {
id: ''
};
}
- 참조 변수는 반드시 폼 태그를 이용해야 하고 변수명 앞에 # 기호를 붙여 선언합니다.
- <form #signInForm="ngForm"> - 검증상태를 확인하기 위해서 검증상태에 접근하기 위한 참조변수를 선언합니다. (#userId="ngModel")
- 참조변수인 userId는 입력 엘리먼트에 접근할 수 있는 변수입니다.
- input 태그의 속성으로 [(ngModel)]을 선언하고 값을 바인딩 합니다.
- 위와 같이 폼 변수인 signInForm을 사용하여 유효값 검사를 할 수 있습니다.
- signInForm.invalid 또는 signInForm.valid - 주의할점. form 태그 안에서 input 태그의 name속성을 삭제하면 에러가 발생합니다.
폼 내부 엘리먼트로 인식이 안되기 때문입니다. - form 태그안에서 검증을 제거할 속성에 대해서는 ngModelOptions 속성을 사용합니다. 그렇게되면 name속성을 사용하지 않고 별개의 상태를 가질 수 있습니다.
- standalone을 true로 설정하면 폼 내부에서 아이디와 패스워드 엘리먼트와 별개로 독립된 상태를 갖게 되고, 검증시 signInForm.invalid에 영향을 미치지 않습니다. 폼 검증시 standalone 설정이 돼 있는 엘리먼트는 제외하고 진행합니다.
모두 즐거운 코딩하세요~
반응형
'프레임워크 > Angular Framework' 카테고리의 다른 글
Angular5 style guide 간단설명 (0) | 2017.12.02 |
---|---|
Angular 2 지시자의 종류 (0) | 2017.11.26 |
Angular2 HTTP(get,post) 사용법 (0) | 2017.03.26 |
Angularjs 에러 Blocked loading resource from url not allowed by $sceDelegate policy 해결방법 (0) | 2016.11.10 |
AngularJS에서 ng-src reload하는 방법 (0) | 2016.08.30 |
Comments