0

我的控制器中有一组选项,如下所示:

$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 表达式????

谢谢

4

1 回答 1

1

您的$scope.options数组不可用,ngOptions因为您有一个由三个完全不同的对象组成的数组(一个有一个one属性,另一个有一个two属性,最后一个有一个three属性)。如果要select默认为$scope.choices[0],则goal.choices需要设置为$scope.options[0]

我不得不在这里做出一些猜测,因为你没有包括什么$scope.objectives,但我可以想象你会这样做:

http://jsfiddle.net/A5KkM/

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] }];
}
于 2013-05-30T19:32:30.453 回答