3

次のオブジェクトがあります。

defaults = {
0 : {
    id : 10,
    value : "string 1"
    },
1 : {
    id : 22,
    value : "string 2"
    }
}

このオブジェクトを反復処理して、選択ボックスとして表示したいと考えています。

<select ng-model="selectedValue" ng-options="obj.id as obj.value for obj in defaults">
   <option value="">---Select option-----</option>
</select>

私が達成しようとしているのは、デフォルトで「文字列 2」を選択することです。しかし、うまくいきません。私が抱えている問題は、selectedValue が文字列であるという事実です。

$scope.selectedValue = "string 2";

ドキュメントから学んだことから、selectedValue は同じオブジェクトでなければなりません。しかし残念ながら、それは不可能です。私の場合、selectedValue は文字列でなければなりません。つまり、オプションの名前だけで操作する必要があり、id は気にしません。ng-repeat を使ってみました。それも機能しますが、空のオプションが表示されます.ng-repeatを使用するのは良い方法ではないと思います.

どんなアドバイスでも大歓迎です。

4

4 に答える 4

2

選択した値は id である必要があります。

 $scope.selectedValue = 22;

デモを見る

編集:

テンプレートを変更

 <select ng-model="selectedValue" >
   <option value="">---Select option-----</option>
   <option ng-selected="selectedValue == obj.value" value="{{obj.value}}" ng-repeat="obj in defaults">{{obj.value}}</option>
 </select>

更新されたデモを見る

于 2014-04-27T07:49:31.210 に答える