所以我有一个下拉菜单,我正在使用角度来构建它。分钟是一组数字[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,并且仍然选择ALWAYS表示它是有效的。
到目前为止,我发现问题与我使用简单数字而不是绑定到对象有关。如果我正在使用更多对象集合进行下拉列表,则所需的验证正确检测到没有选择任何内容。我原本以为将上面的下拉列表中的初始值设置为null将起作用,但事实并非如此。那么有谁知道如何在绑定到数字数组的下拉列表上使用必需的验证?
答案 0 :(得分: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];
});