HTML
<div ng-app="myApp" ng-controller="myCrtl as myForm">
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.first" ng-change="myForm.onCheckBoxSelected()" /> First <br />
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.second" ng-change="myForm.onCheckBoxSelected()"/>Second <br />
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.third" ng-change="myForm.onCheckBoxSelected()"/> Third<br/>
<span style="color:red;" ng-if="!myForm.selectedOptions ">Required</span>
</div>
JS
angular.module('myApp',[])
.controller('myCrtl',function(){
var myForm=this;
myForm.onCheckBoxSelected=function(){
var flag=false;
for(var key in myForm.selectedOptions){
if(myForm.selectedOptions[key]){
flag=true;
}
}
if(!flag){
myForm.selectedOptions = undefined;
}
};
});
JS 바이올린 : 나는이 방법을 시도하고이 없음을 선택 내게 필요한 것을 발견하거나 모든
http://jsfiddle.net/fodyyskr/ 확인란. 아무 것도 선택하지 않은 경우 ng-required는 모두 false이며 유효성 검사가 성공합니다. 첫 번째 만 선택하면 모든 확인 상자가 필요하므로 유효성 검사가 실패합니다. all이 선택되면 모두 필요하며 유효성 검사가 성공합니다. – Binnut
'! (myForm.first || myForm.second || myForm.third)'를 사용하는 것은 괜찮은 것처럼 보입니다. – Binnut
그리고 20 개의 체크 박스가 있다면? 이 솔루션은 단지 몇 가지가있는 경우에만 유용합니다. – Nat