AngularJS에서 ng-pris틴과 ng-dirty의 차이점은 무엇입니까?
와의 차이점은 무엇입니까?ng-pristine
그리고.ng-dirty
둘 다 할 수 있을 것 같아true
:
$scope.myForm.$pristine = true; // after editing the form
그ng-dirty
class는 사용자에 의해 폼이 변경되었음을 알립니다.ng-pristine
class는 사용자가 양식을 수정하지 않았음을 알려줍니다.그렇게ng-dirty
그리고.ng-pristine
같은 이야기의 양면입니다.
클래스는 임의의 필드에 설정되지만 폼에는 두 가지 속성이 있습니다.$dirty
그리고.$pristine
.
를 사용할 수 있습니다.$scope.form.$setPristine()
폼을 초기 상태로 리셋하는 기능(이는 AngularJS 1.1.x 기능임을 유의하십시오).
필요한 경우$scope.form.$setPristine()
AngularJS의 1.0.x 브랜치에서도, 독자적인 솔루션을 전개할 필요가 있습니다(이쪽에서 꽤 좋은 솔루션을 찾을 수 있습니다).기본적으로 이는 모든 양식 필드에 대해 반복하고 해당 필드를 설정하는 것을 의미합니다.$dirty
에 깃발을 올리다.false
.
pairit 필드는 아직 버진이며 dirty는 사용자가 관련 필드에 이미 입력했는지 여부를 나타냅니다.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<form ng-app="" name="myForm">
<input name="email" ng-model="data.email">
<div class="info" ng-show="myForm.email.$pristine">
Email is virgine.
</div>
<div class="error" ng-show="myForm.email.$dirty">
E-mail is dirty
</div>
</form>
단일 키 다운 이벤트를 등록한 필드는 더 이상 버진(더 이상 깨끗하지 않음)이 아니므로 영원히 더럽습니다.
두 지시문은 분명히 같은 목적을 가지고 있으며, 양쪽을 포함하기로 한 각도 팀의 결정이 DRY 원칙을 방해하고 페이지의 페이로드에 추가되는 것처럼 보이지만, 여전히 둘 다 주변에 있는 것이 실용적이다.css 파일에는 .ng-pristern과 .ng-dirty를 모두 스타일링할 수 있기 때문에 입력 요소의 스타일링이 용이합니다.이것이 두 가지 지시를 모두 추가한 주된 이유라고 생각합니다.
이전 답변에서 이미 언급했듯이,ng-pristine
는 필드가 변경되지 않았음을 나타냅니다.ng-dirty
수정되었음을 알리기 위한 것입니다.왜 둘 다 필요하죠?
필드 사이에 전화와 이메일 주소가 있는 양식이 있다고 칩시다.전화 또는 이메일이 필요합니다.또한 각 필드에 비활성 데이터가 있는 경우에도 사용자에게 통지해야 합니다.이것은, 다음과 같이 실시할 수 있습니다.ng-dirty
그리고.ng-pristine
함께:
<form name="myForm">
<input name="email" ng-model="data.email" ng-required="!data.phone">
<div class="error"
ng-show="myForm.email.$invalid &&
myForm.email.$pristine &&
myForm.phone.$pristine">Phone or e-mail required</div>
<div class="error"
ng-show="myForm.email.$invalid && myForm.email.$dirty">
E-mail is invalid
</div>
<input name="phone" ng-model="data.phone" ng-required="!data.email">
<div class="error"
ng-show="myForm.phone.$invalid &&
myForm.email.$pristine &&
myForm.phone.$pristine">Phone or e-mail required</div>
<div class="error"
ng-show="myForm.phone.$invalid && myForm.phone.$dirty">
Phone is invalid
</div>
</form>
ng-interface(ng-interface. ($140)
양식/입력(사용자가 수정하지 않은 경우)이 Boolean True입니다.
ng-interface(ng-interface. ($140)
Boolean True(양식/입력 사용 시)
$setDirty(); 폼을 더티 상태로 설정합니다.이 메서드를 호출하여 'ng-dirty' 클래스를 추가하고 형식을 더티 상태(ng-dirty 클래스)로 설정할 수 있습니다.이 메서드는 현재 상태를 부모 양식에 전파합니다.
$setPristin(); 폼을 원래 상태로 설정합니다.이 메서드는 폼의 $pris틴 상태를 true로 설정하고 $dirty 상태를 false로 설정하고 ng-dirty 클래스를 삭제하고 ng-pris틴 클래스를 추가합니다.또한 $submitted 상태를 false로 설정합니다.이 메서드는 이 양식에 포함된 모든 컨트롤에도 전파됩니다.
폼을 저장 또는 리셋한 후 폼을 '재사용'하려는 경우 폼을 원래 상태로 되돌리는 것이 유용합니다.
언급URL : https://stackoverflow.com/questions/18073230/in-angularjs-whats-the-difference-between-ng-pristine-and-ng-dirty
'source' 카테고리의 다른 글
ES7로 응답: Uncaughed TypeError: 정의되지 않은 속성 '상태'를 읽을 수 없습니다. (0) | 2023.02.18 |
---|---|
[ts] 종료되지 않은 정규 표현 리터럴. (0) | 2023.02.14 |
스프링 보안에서는 액세스가 항상 거부됩니다(Deny All Permission Evaluator). (0) | 2023.02.14 |
새 선이 있는 AngularJS 문자열, 중단 없이 표시됩니다. (0) | 2023.02.14 |
잠금 파일을 만들거나 열 수 없습니다. /data/mongod.lock errno:13 권한 거부됨 (0) | 2023.02.14 |