[Angular JS: Up & Running] 04장_양식, 입력 및 서비스
24600 단어 angularjs【AngularJS:Up&Running 학습노트]
1ng-model의 사용
ng-model 명령어: 데이터의 양방향 귀속을 진행합니다
<input type="text" ng-model="ctrl.username">
You typed {{ctrl.username}}
angular.module('notesApp', [])
.controller('MainCtrl', [function () {
this.username = 'nothing';
}]);
2 양식 사용
var self = this;
self.submit = function () {
console.log('User clicked submit with ',
self.user);
};
3 데이터 귀속 및 모델 사용
HTML:
JS:
var self = this;
self.submit1 = function () {
//
var user = {username:self.username,password:self.password};
console.log('First form submit with ',user);
};
self.submit2 = function () {
console.log('Second form submit with ',self.user);
};
4 양식 상태 및 검증
HTML
<form ng-submit="ctrl.submit();" name="myForm">
<input type="text"
ng-model="ctrl.user.username"
required
ng-minlength="4">
<input type="password"
ng-model="ctrl.user.password"
required>
<input type="submit"
value="Submit"
ng-disabled="myForm.$invalid">
form>
JS
angular.module('notesApp', [])
.controller('MainCtrl', [function () {
var self = this;
self.submit = function () {
console.log('User clicked submit with ', self.user);
};
}]);
4.1 AngularJS의 양식 상태 속성
양식 상태 이름
작용
$invalid
인증이 통과되지 않은 경우 (필수 인증, 최소 길이 검증 등) AngularJS는 양식에 $invalid 속성을 설정합니다.
$valid
$invalid 상태와 정반대입니다. 모든 검증이 통과되었음을 나타냅니다.
$pristine
AngularJS의 모든 양식 상태는 $pristine입니다.이것은 사용자가 폼 요소를 입력하거나 수정했는지 여부를 나타낸다.가능한 용도: 폼이 $pristine 상태일 때reset 단추를 사용할 수 없게 하기 (disabe)
$dirty
$pristine와 반대로, 사용자가 데이터를 수정했음을 나타냅니다. (사용자는 수정 내용을 취소할 수 있으나dirty 속성은 설정되었습니다.)
$error
이것은 모든 폼에 다음과 같은 정보를 제공합니다. 어떤 입력 컨트롤에 오류가 발생했는지, 오류 형식이 발생했는지.
4.2 AngularJS 내장 인증기
검증기
작용
required
내용이 비어 있지 않은지 확인하십시오. 이 필드는 항상 $invalid라고 표시됩니다.
ng-required
required는 필드가 항상 비어 있지 않도록,ng-required는 표현식의 반환값에 따라 필드가 필수인지 여부를 결정합니다.
ng-minlength
최소 문자 길이
ng-maxlength
최대 문자 길이
g-pattern
필드는 정규 표현식과 일치해야 합니다
type=”email”
필드는 합법적인 메일 주소여야 합니다.
type=”number”
필드는 유효한 숫자여야 하며, min과 max 속성을 지정하여 숫자의 범위를 제한할 수 있습니다.
type=”date”
브라우저가 지원하면 이 필드는 HTML 날짜 선택기로 표시됩니다.지원하지 않으면 기본적으로 텍스트 입력 상자ng-model에 연결된 필드로 표시됩니다. 예를 들어 2016-09-23
type=”url”
필드는 올바른 URL 링크 주소여야 합니다.
상술한 검증기를 제외하고는 사용자도 사용자 정의 검증기를 작성할 수 있다.
5 오류 정보 표시
ng-show의 사용
<form ng-submit="ctrl.submit();" name="myForm">
<input type="text"
name="uname"
ng-model="ctrl.user.username"
required
ng-minlength="4">
<span ng-show="myForm.uname.$error.required">
This is a required field
span>
<span ng-show="myForm.uname.$error.minlength">
Minimum length required is 4
span>
<span ng-show="myForm.uname.$invalid">
This field is invalid
span>
<input type="password"
name="pwd"
ng-model="ctrl.user.password"
required>
<span ng-show="myForm.pwd.$error.required">
This is a required field
span>
<input type="submit"
value="Submit"
ng-disabled="myForm.$invalid">
form>
6 상태에 따라 양식 스타일 수정
6.1 양식 상태 CSS class
양식 상태
CSS 클래스
$invalid
ng-invalid
$valid
ng-valid
$pristine
ng-pristine
$dirty
ng-dirty
6.2 입력 컨트롤 상태 CSS class
입력 컨트롤 상태
CSS 클래스
$invalid
ng-invalid
$valid
ng-valid
$pristine
ng-pristine
$dirty
ng-dirty
required
ng-valid-required or ng-invalid-required
min
ng-valid-min or ng-invalid-min
max
ng-valid-max or ng-invalid-max
minlength
ng-valid-minlength or ng-invalid-minlength
maxlength
ng-valid-maxlength or ng-invalid-maxlength
pattern
ng-valid-pattern or ng-invalid-pattern
url
ng-valid-url or ng-invalid-url
ng-valid-email or ng-invalid-email
date
ng-valid-date or ng-invalid-date
number
ng-valid-number or ng-invalid-number
6.3 입력 컨트롤을 다른 방식으로 강조 표시
HTML:
CSS:
<style>
.username.ng-valid{
background-color: green;
}
.username.ng-dirty.ng-invalid-required{
background-color: red;
}
.username.ng-dirty.ng-invalid-minlength{
background-color: lightpink;
}
style>
JS:
angular.module('notesApp', [])
.controller('MainCtrl', [function () {
var self = this;
self.submit = function () {
console.log('User clicked submit with ', self.user);
};
}]);
7 ng-form 및 내장 폼
AngularJS는 g-form 지령을 제공했는데 이것은 form과 매우 가깝고 내장 기능을 제공했다. 그러면 우리는 표의 일부 필드를 조합하여 하나의 빠른 처리로 삼을 수 있다.
<form novalidate name="myForm">
<input type="text"
class="username"
name="uname"
ng-model="ctrl.user.username"
required=""
placeholder="Username"
ng-minlength="4" />
<input type="password"
class="password"
name="pwd"
ng-model="ctrl.user.password"
placeholder="Password"
required="" />
<ng-form name="profile">
<input type="text"
name="firstName"
ng-model="ctrl.user.profile.firstName"
placeholder="First Name"
required>
<input type="text"
name="middleName"
placeholder="Middle Name"
ng-model="ctrl.user.profile.middleName">
<input type="text"
name="lastName"
placeholder="Last Name"
ng-model="ctrl.user.profile.lastName" required>
<input type="date"
name="dob"
placeholder="Date Of Birth"
ng-model="ctrl.user.profile.dob" required>
</ng-form>
<span ng-show="myForm.profile.$invalid">
Please fill out the profile information
</span>
<input type="submit"
value="Submit"
ng-disabled="myForm.$invalid">
</form>
8 기타 양식 컨트롤
<textarea ng-model="ctrl.user.address" required>textarea>
<input type="checkbox"
ng-model="ctrl.user.agree"
ng-true-value="YES"
ng-false-value="NO">
<div ng-init="user = {gender:'female'}">
<input type="radio"
name="gender"
ng-model="user.gender"
value="male">
<input type="radio"
name="gender"
ng-model="user.gender"
value="female">
div>
<div ng-init="location = 'India'">
<select ng-model="location">
<option value="USA">USAoption>
<option value="India">Indiaoption>
<option value="Other">None of the aboveoption>
select>
div>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringMvc+Angularjs 멀티 파일 대량 업로드SpringMvc 코드 jar 가방 commons-fileupload commons-io spring-mvc.xml 구성 Controller 로컬 저장 AngularJs 코드 Form 양식 커밋 위에서 말한 것은 여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.