以下是困扰很多人(包括我)的问题。
当在AngularJS中使用ng-options指令来填充<select>标记的选项时,我不知道如何为一个选项设置值。这方面的文档确实不清楚——至少对我这样的傻瓜来说是这样。
我可以像这样轻松地设置一个选项的文本:
ng-options="select p.text for p in resultOptions"
例如,当resultOptions为:
[
{
"value": 1,
"text": "1st"
},
{
"value": 2,
"text": "2nd"
}
]
它应该是(可能是)设置选项值最简单的事情,但到目前为止,我只是不明白它。
以下是我如何在遗留应用程序中解决这个问题:
在HTML中:
ng-options="kitType.name for kitType in vm.kitTypes track by kitType.id" ng-model="vm.itemTypeId"
在JavaScript中:
vm.kitTypes = [
{"id": "1", "name": "Virtual"},
{"id": "2", "name": "Physical"},
{"id": "3", "name": "Hybrid"}
];
...
vm.itemTypeId = vm.kitTypes.filter(function(value, index, array){
return value.id === (vm.itemTypeId || 1);
})[0];
我的HTML正确地显示了选项值。
您可以使用ng-options实现选择标记绑定到值和显示成员
在使用此数据源时
countries : [
{
"key": 1,
"name": "UAE"
},
{
"key": 2,
"name": "India"
},
{
"key": 3,
"name": "OMAN"
}
]
可以使用下面的代码将选择标记绑定到值和名称
<select name="text" ng-model="name" ng-options="c.key as c.name for c in countries"></select>
效果很好
ngOptions指令:
$scope.items = [{name: 'a', age: 20},{ name: 'b', age: 30},{ name: 'c', age: 40}];
Case-1)数组中值的标签:
< div >
<p>selected item is: {{selectedItem}}</p> . {{selectedItem}
<p>年龄的选定项目是:{{selectedItem。年龄}}< / p >
<select ng-model="selectedItem" ng-options="item.name for item in items">
< /选择>
< / div >
输出说明(假设选择了第一项):
selectedItem = {name: 'a', age: 20} //[默认情况下,所选项目等于值item]
selectedItem.age = 20
Case-2)为数组中的值选择标签:
< div >
<p>selected item is: {{selectedItem}}</p> . {{selectedItem}
<select ng-model="selectedItem" ng-options="item。年龄为项目"> "中项目的item.name
< /选择>
< / div >
输出说明(假设选择了第一项):
selectedItem = 20 // [select part is item.age]