필요에 따라 드롭 다운의 유효성을 검사하고 싶습니다. 기본값은 값이 null이거나 공백 인 경우에만 작동합니다 (내가 틀렸다면 나를 수정하십시오). 값이 '이 지정되지 않으면'이면 오류가 발생하고 양식이 유효하지 않게해야합니다.Required/ngRequired에 대한 사용자 지정 지침
<select name="first" class="select" title="Select Approver" ng-model="applications.first" ng-options="x.id as x.value for x in list1" ng-change="SetToAll(applications.first,'1')" required></select>
나는 오류 메시지를 표시 할 수 있습니다이 사용하지만이
<span class="error" ng-show="applications.first == 'not assigned'?true:false">Select Approver</span>
해결 잘못된 형식을 수행합니다 - 당신이 다음 섀넌 을 확인 필요 사용하려는 경우)
1 Hochkins 솔루션입니다.
<form name="formName">
<select name="first" class="select" title="Select Approver" ng-model="applications.first" ng-options="x.id as x.value for x in list1" ng-change="SetToAll(applications.first,'1')" required="true">
<option value="">Not Assigned</option>
</select>
<span class="error" ng-show="formName.first.$invalid ?true:false">Select Approver</span>
<pre>{{formName | json}}</pre>
</form>
He 빈 값 <option value="">Not Assigned</option>
의 옵션이 추가되었습니다. 선택에서 required="true"
을 설정하십시오. 이것은 완벽하게 작동합니다.
2) 사용자 지정 지시문 사용.
app.directive('req', [
function() {
var link = function($scope, $element, $attrs, ctrl) {
var validate = function(viewValue) {
var comparisonModel = $attrs.req;
var invalid = $attrs.invalid;
if (viewValue == invalid) {
// It's valid because we have nothing to compare against
ctrl.$setValidity('req', false);
} else {
ctrl.$setValidity('req', true);
}
};
$attrs.$observe('req', function(comparisonModel) {
// Whenever the comparison model changes we'll re-validate
return validate(ctrl.$viewValue);
});
};
return {
require: 'ngModel',
link: link
};
}
]);
그리고 HTML 코드는 :
여기
<select invalid="not assigned" req={{applications.first}} name="first" class="select" ng-model="applications.first" ng-options="x.id as x.value for x in list1" title="Select Approver" ></select>
<span class="error" ng-show="Step5.first.$error.req">Select Approver</span>
당신은 invalid="not assigned"
또는 invalid='0'
또는 invalid=' '
같은 값을 설정해야합니다. 지시문에서 값이 일치하면 잘못된 속성과 비교하여 오류를 표시합니다.
은 당신이 드롭 다운의 기본 값을 할당 시도 유무 :'applications.first = null' –
@ShannonHochkins 캐스케이드 드롭 다운이 있고 필터를 사용하여 내 질문을 업데이트하도록했습니다. –
제 대답을 참조하십시오! –