1

ng-options を使用して複数の select-element を生成しようとしていて、いくつかのアイテムを事前に選択したいと考えています。データベースから事前に選択された項目をオブジェクトの配列として取得します。それは、選択可能なものを構築するための私の HTML マークアップです。

<select ng-model="currentAppointment.services" ng-options="value.id as value.name group by value.group for value in servicegroups"></select>

currentAppointment.services 変数は、現在選択されているオブジェクトを保持します。サービスグル​​ープでは、それらはすべて選択可能な項目であり、REST サービスから取得します。サービスグル​​ープの JSON は次のようになります。

[
  {
    "id": 0,
    "name": "Test1"
    "price": 20.0
  },
  {
    "id": 1,
    "name": "Test2"
  }
]

そして currentAppointment JSON:

{
  "_id": "1001",
  "title" : "test",
  "services": [
    {
      "id": 0,
      "name": "Test1"
      "price": 20.0
    }
  ]
}

select-element は正しく作成されています。ただし、ID 0 のサービス オブジェクトは事前に選択されていません。問題は、Angular が通常のオブジェクトを angularjs Resource-object と比較するため、オブジェクトが等しくないことです。代わりに、オブジェクトを ID で比較する必要があります。しかし、独自のディレクティブをコーディングせずにどうすればそれを達成できますか?

4

1 に答える 1

1

オブジェクトを割り当ててドロップダウン リストを事前設定する場合はvalue.id、内包表記から削除する必要があります。

<select ng-model="currentAppointment.services" ng-options="value.name group by value.group for value in servicegroups"></select>

それからする

$scope.currentAppointment.services = $scope.servicegroups[0];

Working Demo

于 2013-08-05T00:12:18.097 に答える