对象第一个属性上的AngularJS ng-repeat键

时间:2014-05-11 23:56:20

标签: javascript angularjs

我喜欢为订购数据构建一个select元素。我喜欢自动为对象的任何属性创建选项。

代码

<select class="order" ng-model="model.order">
    <option value="{{key}}" ng-repeat="(key, value) in dataItems[0]">{{key}}</option>
</select>

数据

dataItem: {
 { firstname: "beate", lastname: "lind" }
 { firstname: "john", lastname: "rich" }
}

在这种情况下,它将采用第一个对象并生成我的选择选项。

2 个答案:

答案 0 :(得分:2)

ng-repeat标记上使用select不正确。 请参阅ng-options属性,该属性的行为应更加一致,并为您提供所需的结果:

https://docs.angularjs.org/api/ng/directive/select

答案 1 :(得分:0)

@Cranio是正确的,ngOptions是使用select时的正确方法。使用您的代码就是它的样子。

$scope.dataItem = [
 { firstname: "beate", lastname: "lind" }
 { firstname: "john", lastname: "rich" }
]

<select ng-model="model.order" ng-options="(name.firstname + ' ' + name.lastname) for name in dataItem">
    <option value="">[-- select --]</option>
</select>

Live DEMO

如果您遇到问题,这篇SO帖子会有很多有用的答案(ngOptions还有其他几项可以做的事情) How do I set the value property in AngularJS' ng-options?