2014-01-08 48 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> 

我的问题是,这始终报告是有效的。我已经删除了那里的选项,可以让我自定义找不到匹配项时使用的选项,并且不会改变它。我已经尝试将StartMinute设置为null,-1和undefined,并且仍然选择ALWAYS表示它是有效的。

到目前为止,我发现问题与我使用简单的数字而不是绑定到对象有关。在我使用更多对象集合进行下拉的情况下,所需验证正确检测到没有选择任何内容。我会认为将上面的下拉菜单的初始值设置为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/

相关问题