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 の出現によってソートされず、デフォルト オプションが選択されていません。

これを機能させるために必要な ng-options 式は何ですか?????

ありがとう

4

1 に答える 1

1

3 つのまったく異なるオブジェクト (1 つにはプロパティがあり、もう 1つにはプロパティがあり、最後のオブジェクトにはプロパティがあります) の配列があるため、$scope.options配列は使用できません。を にデフォルト設定する場合は、に設定する必要があります。ngOptionsonetwothreeselect$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 に答える