我的控制器中有一组选项如下:
$scope.options = [
{one: 'ONE'},
{two: 'TWO'},
{three: 'THREE'}
];
我的观点看起来如下所示:
<div ng-repeat="goal in objectives">
...
<select ng-model="goal.choices" ng-options="value for (key, value) in options"> </select>
...
</div>
问题:结果下拉列表不是按照数组中的obj出现而是按每个对象键的alpha进行排序,并且没有选择默认选项,我希望下拉列表默认为“一”不是''
什么是ng-options表达式需要使其工作?????
由于
答案 0 :(得分:1)
您的$scope.options
数组在ngOptions
中不可用,因为您有一个包含三个完全不同的对象的数组(一个具有one
属性,另一个具有two
属性,最后一个three
属性)。如果您希望select
默认为$scope.choices[0]
,则goal.choices
需要设置为$scope.options[0]
。
我必须在这里做一些猜测,因为你没有包含$scope.objectives
的内容,但我可以想象你会选择这样的东西:
HTML
<div ng-app ng-controller="x">
<div ng-repeat="goal in objectives">{{goal.choice}}
<select ng-model="goal.choice" ng-options="o.name for o in options"></select>
</div>
</div>
的JavaScript
function x($scope) {
$scope.options = [{
name: 'ONE'
}, {
name: 'TWO'
}, {
name: 'THREE'
}];
$scope.objectives = [{ choice: $scope.options[0] }, { choice: $scope.options[1] }];
}