我的应用程序中有很多选择框,由数据列表生成并分配给各种ng模型。
我想将ng-model值设置为应用程序中全局选择输入的第一个可用选项(尊重过滤器)。
例如,像这样的选择输入:
<select ng-model="entry.employee">
<option ng-value="employee.name" ng-repeat="employee in employees | filter:active">{{employee.name}}</option>
</select>
entry.employee
ng-model默认为null,我需要每个选择框永远不为null,但总是默认选择select输入的第一个有效选项。
它也需要是全局的,并且足够通用,可以处理任何类型的选择输入。
以下是数据:
$scope.employees= [
{'name':'Bill'},
{'name':'Frank'},
{'name':'Ted'},
];
答案 0 :(得分:0)
不要在选项元素上使用ng-repeat,而是直接在select标记上使用ng-option。
例如
<select class="form-control" ng-options="item.name for item in employees track by item.id" ng-model="selectedItem"></select>
在您的控制器中使用:
$scope.selectedItem=$scope.employees[0];
你的对象就像:
$scope.employees= [
{id:'1','name':'Bill'},
{id:'2','name':'Frank'},
{id:'3','name':'Ted'},
];
在这种情况下,您可以选择标签为&#39; n&#39;数字,但只要你想让你的模型成为第一个,只需用你对象中的第一个元素初始化它。 使用ng-option也是一件好事,无论何时你想在运行时更改select元素的值,你只需要更新 selectedItem 元素。
希望这可以解析您的查询