[forms] AngularJS를 사용하여 조건부로 양식 입력을 요구할 수 있습니까?

AngularJS를 사용하여 주소록 응용 프로그램 (구성된 예)을 작성한다고 가정하십시오.

우리는 이메일과 전화 번호에 대한 입력을 가진 연락처 양식을 가지고 있으며 중 하나 를 요구 하지만 둘다email필요 phone하지 않습니다 . 입력이 비어 있거나 유효하지 않은 경우에만 입력이 필요 하고 그 반대도 마찬가지입니다.

Angular에는 required지시문이 있지만이 경우 사용법을 문서에서 명확하지 않습니다. 조건부 양식 필드를 어떻게 요구할 수 있습니까? 사용자 지정 지시문을 작성 하시겠습니까?



답변

사용자 지정 지시문을 작성할 필요가 없습니다. Angular의 문서는 훌륭하지만 완전하지는 않습니다. 실제로ngRequired Angular 식을 취하는 지시문이 있습니다.

<input type='email'
       name='email'
       ng-model='contact.email'
       placeholder='your@email.com'
       ng-required='!contact.phone' />

<input type='text'
       ng-model='contact.phone'
       placeholder='(xxx) xxx-xxxx'
       ng-required='!contact.email' />  

보다 완벽한 예는 다음과 같습니다. http://jsfiddle.net/uptnx/1/


답변

다른 것이 쓰여지면 필요한 입력을 원한다면 :

   <input type='text'
   name='name'
   ng-model='person.name'/>

   <input type='text'
   ng-model='person.lastname'
   ng-required='person.name' />  

문안 인사.


답변

간단하게 각도 검증을 사용할 수 있습니다 :

 <input type='text'
   name='name'
   ng-model='person.name'
   ng-required='!person.lastname'/>

   <input type='text'
   name='lastname'
   ng-model='person.lastname'
   ng-required='!person.name' /> 

이제 하나의 텍스트 필드에만 값을 채울 수 있습니다. 성이나 이름을 채울 수 있습니다. 이런 식으로 AngularJ에서 조건부 필수 채우기를 사용할 수 있습니다.


답변

Angular2의 경우

<input type='email'
    [(ngModel)]='contact.email'
    [required]='!contact.phone' >


답변