Validation 角度下拉列表/选择必填项始终表示其有效

Validation 角度下拉列表/选择必填项始终表示其有效,validation,angularjs,html-select,Validation,Angularjs,Html Select,所以我有一个下拉列表,我用angular来构建它。分钟是一个数字数组[0,1,2…59]。过滤器是一个简单的过滤器,它将0-9之间的数字显示为00,01。。。等等 <select ng-model="addObj.StartMinute" ng-options="m as m | pad2Digit for m in Minutes" required

所以我有一个下拉列表,我用angular来构建它。分钟是一个数字数组[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且未定义,但select始终表示它是有效的


到目前为止,我发现问题与我使用简单的数字而不是绑定到对象有关。在我使用更多对象集合进行下拉的情况下,所需的验证是正确地检测没有选择任何对象。我本以为将上面下拉列表中的初始值设置为null会起作用,但事实并非如此。那么,有人知道如何在绑定到数字数组的下拉列表上使用所需的验证吗

项目中肯定有其他东西不起作用,使其不起作用,因为我为演示问题而拼凑的原始JSFIDLE工作正常。如果初始值为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>
var app = angular.module("app",[]);
app.controller("ctrlDropdown",function($scope){
    $scope.test = "wee";
    $scope.number1 = null;
    $scope.numbers=[1,2,3,4,5,6];
});