Categories

  • posts

Tags

  • AngularJS

폼/유효성 검사

ng-model : 바인딩 대상이 되는 모델명

name : 폼에서 사용하는 이름

ng-required : 필수 입력 여부

ng-minlength : 입력값의 최소 글자 수

ng-maxlength : 입력값의 최대 글자 수

ng-pattern : 입력값과 비교될 정규표현식

ng-charge : 사용자 입력이 발생할 때 실행될 정규표현식

사용 예)

See the Pen AngularJS- 폼/유효성 검사 by juein (@juein) on CodePen.

위 코드에서 $valid와 $error 는 AngularJs 에서 만들어진 FormController 다.
<form>은 FormController의 인스턴스이고, <form>의 name 속성에 준 값을 이용해 $scope에서 접근할수있다.
<form>의 이름이 testForm 이므로 $scope.testForm 으로 접근할 수 있다.

FormController의 속성과 메서드

$pristine : 사용자의 입력이 없었으면 true

$dirty : 사용자의 입력이 있었으면 true

$valid : <form>에 있는 input 요소의 유효성 검증이 통과되면 true

$invalid : <form?에 있는 input 요서의 유혀성을 통과하면 false

$error : 유효성 검증의 이름을 key로, 각 컨트롤 요소의 name을 값으로 가진 객체

$addControl() : 컨트롤 요소를 추가

$removeControl() : 컨트롤 요소를 제거

$setDirty() : $dirty 값을 바꾼다. 강제로 폼이 수정된 상태를 변경

$setValidity() : <form? 요소의 유효성 상태를 바꾼다

$setPristine() : <form? 요소의 $pristine 값을 false로 변경

FormController는 <form> 요소의 유효성 및 입력상태를 관리하고, <form> 요소 안에 있는 컨트롤,
input, select, textarea 등의 요소 개개의 유효성, 입력 상태는 NgModelController 가 관리한다.

NgModelController의 속성과 메서드

$viewValue : 화면에서 보이는 값

$modelValue : 컨트롤 요소가 바인딩 된 모델 값

$parsers : 함수들의 배열. $viewValue의 값이 바뀔때 호출되고, 호출된 함수가 반환한 값은 $modelValue에 전달된다.

$formatters : 함수의 배열. 각 함수느 순서대로 $modelValue가 바뀔 때마다 호출되고, 최종적으로 $viewValue로 값이 전달된다.

$viewChangeListeners : 화면 요소의 값이 변경 될 때마다 호출되는 함수의 배열. 반환값은 무시한다.

$error : 유효성 검증의 이름을 key로 하고, 각 컨트롤 요소의 name을 값으로 가진 객체

$pristine : 사용자의 입력이 없으면 true

$dirty : 사용자의 입력이 있었으면 true

$valid : <form>에 있는 input 요소의 유효성 검증이 통과되면 true

$invalid : <form?에 있는 input 요서의 유혀성을 통과하면 false

$render() : 화면이 업데이트 될 때마다 호출. NgModelController의의 $render에 함수를 대입해 놓으면 화면이 업데이트 될 때마다 호출된다.

$setValidity() : 유효성 상태를 설정하고 유효성 상태가 변경될때 FormController에게 알려준다.

$isEmpty : 입력 요소의 값이 빈 값인지 확인

$setPristine : $pristine을 false로 변경

$setViewValue() : 화면에 값을 추가한다

checkbox 타입 사용법

<input type="checkbox" ng-modal="문자열" name="문자열" ng-true-value="문자열" ng-false-value="문자열" ng-required="true/false" ng-change="문자열">
ng-model : 바인딩 대상이 되는 모델명

name : 폼의 이름

ng-true-value : 체크박스 체크시 바인딩 된 모델에 대입할 값 (default : true)

ng-false-value : 체크박스 체크 해제시 바인딩 된 모델에 대입할 값 (default : false)

ng-required : 필수 입력 여부

ng-chage : 사용자의 입력이 발생할 때 실행될 표현식

select 요소 사용법

<select ng-model="문자열" name="문자열" ng-options="표현식" ng-required="true/false">
ng-model : 바인딩 대상이 되는 모델명

name : 폼의 이름

ng-required : 필수 입력 여부

ng-options : 옵션을 나타내기 위한 별도의 정규표현식

ng-options은 ng-repeat처럼 반복적인 데이터를 위한 별도의 표현식을 제공해준다.

array/object : $scope에 있는 배열 또는 객체에 접근하는 표현식을

value : 배열 요소를 가리키는 내부변수 생성 표현식

label : <option> 요소의 라벨이 될 표현식

select : <select? 요소에 모델로 바인딩되는 표현식

group : <optgroup? 요소가 되는 표현식

사용 예)

See the Pen AngularJS- 폼/유효성 검사 2 by juein (@juein) on CodePen.