AngularJS-깨끗한 / 더러운 것과 만지거나 손대지 않은 것의 차이점


163

AngularJS 개발자 가이드-양식 은 양식 및 필드와 관련된 많은 스타일과 지시문이 있음을 알려줍니다. 각각에 대해 CSS 클래스 :

ng-valid
ng-invalid
ng-pristine
ng-dirty
ng-touched
ng-untouched

pristine/dirty, 및 의 차이점은 무엇입니까 touched/untouched?


3
이제 링크 된 문서의 "CSS 클래스 사용"이라는 제목 아래에 있습니다.
Bernhard Hofmann 2014

1
당신이 맞아요 :) 조금 새로운 것처럼 보이지만 (정의하는 새로운 클래스와 함께)
Luis

답변:


229

AngularJS 개발자 가이드-AngularJS에서 사용하는 CSS 클래스

  • @property {boolean} $ untouched 컨트롤이 아직 포커스를 잃지 않은 경우 True입니다.
  • @property {boolean} $ touched 컨트롤이 포커스를 잃은 경우 True입니다.
  • @property {boolean} $ pristine 사용자가 아직 컨트롤과 상호 작용하지 않은 경우 True입니다.
  • @property {boolean} $ dirty 사용자가 이미 컨트롤과 상호 작용 한 경우 True입니다.

컨트롤을 건 드리면 확실히 더럽다는 뜻입니까? 잃어버린 초점이 상호 작용으로 간주됩니까?
Sasuke Uchiha

90

$pristine/ $dirty는 사용자가 실제로 변경 했는지 여부를 알려주고 , $touched/ $untouched는 사용자가 단순히 거기에 / 방문한 적이 있는지 여부를 알려줍니다 .

이것은 유효성 검사에 정말 유용합니다. 그 이유 $dirty는 사용자가 실제로 특정 컨트롤을 방문 할 때까지 항상 유효성 검사 응답을 표시하지 않기 위해서입니다. 그러나 $dirty속성 만 사용 하면 사용자가 실제로 값을 변경하지 않는 한 유효성 검사 피드백을받을 수 없습니다. 따라서 $invalid필드는 사용자가 값을 변경 / 상호 작용하지 않은 경우 사용자에게 프롬프트를 표시하지 않습니다. 사용자가 필수 필드를 완전히 무시하면 모든 것이 정상으로 보입니다.

Angular 1.3 및를 사용하면 ng-touched사용자가 실제로 값을 편집했는지 여부에 관계없이 사용자가 흐리게 처리되는 즉시 컨트롤에 특정 스타일을 설정할 수 있습니다.

다음 은 동작의 차이를 보여주는 CodePen 입니다.


양식의 유효성 검사 오류를 지우는 방법을 찾고 있습니다. form. $ setPristine은 그것을하지 않습니다. 다른 제안 양식을 보았습니다. $ setUntouched,하지만 이것이 제가 사용중인 버전 인 angular 1.3 19 베타에서는 사용할 수없는 것 같습니다. 그러나 form.field_name. $ setUntouched를 호출 할 수 있지만 모든 필드에 대해 그렇게하는 것은 부담 스럽습니다. 더 좋은 방법이 있습니까?
SamAko

$setPristine단순히 형식을 un- $dirty. 나는 당신이 원할 것이라고 생각합니다 form.setValidity(). 이 게시물에 대한 몇 가지 유용한 답변을 참조하십시오 .
XML

16

Pro Angular-6 책 은 아래와 같이 자세히 설명되어 있습니다.

  • valid :이 속성은 요소의 내용이 유효 하면 true를 반환 하고 그렇지 않으면 false를 반환합니다.
  • 무효 :이 속성 반환 진정한 경우 요소의 내용은, 그렇지 않으면 무효 및 false입니다.

  • pristine :이 속성은 요소의 내용이 변경되지 않은 경우 true를 반환 합니다 .

  • dirty :이 속성은 요소의 내용이 변경된 경우 true를 반환 합니다 .
  • untouched :이 속성은 사용자가 요소를 방문하지 않은 경우 true를 반환 합니다 .
  • touched :이 속성은 사용자가 요소를 방문한 경우 true를 반환 합니다 .

8

양식 및 양식 요소에 대한 유효성 검사 속성이 다르다는 점을 언급 할 가치가 있습니다 (접촉 및 수정되지 않음은 필드에만 해당됨).

Input fields have the following states:

$untouched The field has not been touched yet
$touched The field has been touched
$pristine The field has not been modified yet
$dirty The field has been modified
$invalid The field content is not valid
$valid The field content is valid

They are all properties of the input field, and are either true or false.

Forms have the following states:

$pristine No fields have been modified yet
$dirty One or more have been modified
$invalid The form content is not valid
$valid The form content is valid
$submitted The form is submitted

They are all properties of the form, and are either true or false.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.