2014-01-08 2 views
1

그래서 드롭 다운이 있으며 각도를 사용하여 작성합니다. 분은 숫자 배열 [0,1,2 .... 59]입니다. 필터 0-9에서 00, 01으로 숫자를 표시하는 간단한 필터 ... 등각형 드롭 다운/필수 선택은 항상 유효 함을 나타냅니다.

<select ng-model="addObj.StartMinute" 
          ng-options="m as m | pad2Digit for m in Minutes" 
          required 
          name="startMinute"> 
          <option value="">-- select --</option> 
         </select> 

내 문제점이 ALWAYS 인 유효한 것으로보고이다. 일치하는 항목이 없을 때 사용되는 옵션을 사용자 정의 할 수있는 옵션을 제거 했으므로 변경되지 않습니다. StartMinute를 null로 설정하려고 시도했습니다. -1과 undefined 그리고 여전히 선택은 항상 유효하다고 말합니다.

나는이 문제가 객체에 바인딩하는 것이 아니라 단순한 숫자를 사용하는 것과 관련이 있다는 것을 발견했다. 더 많은 객체 모음을 포함하는 드롭 다운을 수행하는 경우 필요한 검증은 아무것도 선택되지 않았 음을 올바르게 감지합니다. 위의 드롭 다운에 null을 설정하면 초기 값을 설정할 수 있다고 생각 했겠지만 그렇지 않습니다. 그렇다면 누구나 숫자 배열에 바인딩 된 드롭 다운에서 필요한 유효성 검사를 사용하는 방법을 알고 있습니까?

+0

왜 당신은 당신의 자신의 대답에 동의하지? – Sampath

답변

3

문제가 데모를 시도하기 위해 던진 원시 jsfiddle가 제대로 작동하기 때문에 작동하지 않는 프로젝트에 다른 것이 있어야합니다. 초기 값이 null이면 예상대로 유효성 검사가 실패합니다.

HTML

<div ng-app="app"> 
<div ng-controller="ctrlDropdown"> 
    <form name="testForm"> 
     <select ng-model="number1" 
       ng-options="num for num in numbers" 
       required 
       name="ddl1"> 
        <option value="">- select - </option> 
     </select> 
     <br/>failsValidation: {{testForm.ddl1.$error.required}} 
     </form> 
</div> 
</div> 

JS는

var app = angular.module("app",[]); 
app.controller("ctrlDropdown",function($scope){ 
    $scope.test = "wee"; 
    $scope.number1 = null; 
    $scope.numbers=[1,2,3,4,5,6]; 
}); 

http://jsfiddle.net/NBhTT/

관련 문제