ng-options
支持基于数组和对象的数据源。例如:
基于数组的数据源:
$scope.options = ["Blue", "Red", "Yellow"]
<select ng-model="selected"
ng-options="for o in options">
基于对象的数据源:
$scope.options = {
"Blue": "color_1",
"Red": "color_2",
"Green": "color_3"
}
<select ng-model="selected"
ng-options="name for (name, value) in options">
但是,您对基于数组的选项使用了不兼容的数据结构。你可以这样使用:
<select ng-model="selected"
ng-options="o.name for o in options">
并将所选值用作selected.value
. (selected
绑定到数组中的对象之一)。如果您想通过 HTTP 提交表单,这将不起作用,因此在这种情况下您应该将选项转换为上述数据结构之一。
我在这里包含了这三种用法:http://plnkr.co/IEBQkqJNifY5MZWloDP6 http://plnkr.co/IEBQkqJNifY5MZWloDP6
编辑:所以我今天再次查看了文档,找到了使用原始数据结构的方法。
<select ng-model="selected"
ng-options="o.value as o.name for o in options">
plnkr 也更新了。