2013-05-30 98 views
0

我有一組在我的控制器選項,看起來像這樣:ngOptions訂購和陣列選擇對象

$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> 

問題:結果下拉列表不是按數組中的對象排序,而是按每個對象鍵的alpha排序,並且沒有選擇默認選項,我希望下拉列表默認爲'one'而不是''

什麼是ng-options表達式需要做這項工作?????因爲你有三個完全不同的對象數組(一個具有one財產,另一two財產,最後一個three屬性)

感謝

回答

1

$scope.options陣列是不是在ngOptions使用。如果您希望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] }]; 
}