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의 경우처럼)에 객체 배열을 할당하려면 어떻게해야합니까? 예 : 이 개 객실의 경우, NG 모델의 결과가 같은 것을 보여야 만하면 booking.roomSelection에 결합

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

답변

1

밝혀 배열 될 컨트롤러에 선언되어있다. $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> 
+0

roomType "에서'ng-model ="booking.roomSelection [$ index] "''ng-options ="obj를 obj.roomType으로 사용할 수도 있습니다. –

1

을 당신은 두 가지 옵션을 선택합니다 .If ng-init를 제거, 그 값은 booking.roomSelectionbooking.roomSelectionpushed 될 것입니다 것입니다 booking.roomSelection[$index].roomType

하는 오브젝트 배열도 있어야 다음 NG 모델 속성이 변경 될 것으로

<select multiple ng-model="booking.roomSelection" ng-options="obj.roomType as obj.roomType for obj in roomTypes"></select> 
+0

불행하게도, 이것은 NG-모델에 밀어하지 않습니다, 그것은 단지 선택된 옵션의 값으로 덮어 쓰기됩니다 선택의 값을 할당합니다. 나는. book.roomSelection은 단일 값일뿐입니다. –

+0

@ImranNZ ​​당신은 2 개의 옵션을 선택하고'booking.roomSelection'에서 값을 얻고 싶습니다. 그렇습니까? –

+0

선택 항목에'multiple' 속성을 추가하십시오 –