3

範囲を反復処理し、各インデックスに新しい選択オプションを設定しています。オプションは、繰り返し処理している範囲とは関係ありませんが、さまざまなタイプのオプションです。次のようにコードします。

<div ng-repeat="i in range(booking.numberOfRooms) track by $index">
    <p>Room {{$index + 1}}</p>
    <select ng-model="booking.roomSelection[$index]" ng-options="obj.roomType as obj.roomType for obj in roomTypes" ng-init="booking.roomSelection[$index] = { id: $index + 1, roomType: 'Double' }"> </select>
</div>

オブジェクト配列を ng-model に割り当てるにはどうすればよいですか (ng-init のように)? たとえば、2 つの部屋の場合、ng-model の結果は次のようになります。

booking.roomSelection = [{id: 1, roomSelection: 'Double'}, {id: 2, roomSelection: 'Double'}]
4

2 に答える 2

1

ng-model 属性を次のように変更する必要があることがわかりました。booking.roomSelection[$index].roomType

オブジェクト配列もコントローラーで宣言する必要があります。$scope.booking.roomSelection = [];

完全な宣言は次のとおりです。

<div ng-repeat="i in range(booking.numberOfRooms) track by $index">
    <p>Room {{$index + 1}}</p>
    <select ng-model="booking.roomSelection[$index].roomType" ng-options="obj.roomType as obj.roomType for obj in roomTypes" ng-init="booking.roomSelection[$index] = { id: $index + 1, roomType: 'Double' }"></select>
</div>
于 2016-08-18T08:28:10.177 に答える
1

にバインドしてbooking.roomSelectionを削除するだけng-initです。2 つのオプションを選択すると、それらの値は にpushedなり、配列になりますbooking.roomSelectionbooking.roomSelection

<select multiple ng-model="booking.roomSelection" ng-options="obj.roomType as obj.roomType for obj in roomTypes"></select>
于 2016-08-18T08:17:11.220 に答える