2

月を適切に表示できないようです.10月は常に1月の後に来ます.なぜならその値は10です...何らかのソートで2未満であると仮定しています.コードのフィドルは次のとおりです.

http://jsfiddle.net/naZQA/

<select ng-model="month" ng-options="key as value for (key,value) in months"></select>

独自のクレイジーなソートを行うため、USA を 2 番目のエントリとして表示できない国でも同じ問題がありました。

どんな助けでも感謝します。

4

3 に答える 3

6

オブジェクトで ng-options を使用することは、任意の順序であることが保証されていないオブジェクト プロパティを反復するだけです。配列に変更できる場合は、指定された順序であることが保証されます。フィドルを更新しました。次に、選択は次のようになります。

<select ng-model="month" ng-options="currMonth for currMonth in months"></select>

ng-model に同じ値を保持する必要がある場合は、キーと値のペアの配列を使用することもできます。このフィドルを参照してください 次に、選択は次のようになります。

<select ng-model="month" ng-options="currMonth.key as currMonth.value for currMonth in months"></select>
于 2013-03-22T23:00:15.903 に答える
1

AngularJS select docs でコメントしたこの回避策を試してください。
選択値として months.indexOf(m) を使用します。

<select ng-model="monthIndex" ng-options="months.indexOf(m) as m for m in months"></select>

このようにして、単純な文字列配列をソースとして使用し、選択したインデックスで ng-model を更新できます。
ここで試してみてください: jsbin

于 2013-07-17T01:36:48.097 に答える
1

この質問hereで議論されました。したがって、angular ではorderBy単純なハッシュを使用することはできません。データを再構築せずに並べ替えを進めることはできません。これは、変更されたデータ構造フィドルのフィドルです

更新:フィドルへの更新されたリンク

于 2013-03-22T22:57:58.830 に答える