Как отобразить данные в соответствии с ng-repeat в теге select
Вот моя разметка. Я использую ng-repeat и использую x, чтобы передать его через функцию для извлечения данных в моем контроллере.
<div class="row" ng-repeat="x in roomdata.data"> <div class="well well-sm">{{x.room_type}}<a href="#" data-toggle="modal" data-target="#room_detail{{$index}}" class="pull-right">Room Details</a> </div> <h5 class="pull-right">{{x.rack_price}}<br>Per room per night</h5> <img id="roomImg" ng-src="{{x.room_image}}" ng-init=fetchImage(x)> <div class="row"> <select ng-model="selvalue" ng-change="setPrice()" ng-init=fetchPlan(x)> <option ng-repeat="y in x.plan_name track by $index">{{y}}</option> </select> <h4>{{book_status}}</h4> </div> <h3>₹ {{x.rack_price}}</h3> <h3>₹ {{x.price}}</h3> </div> </div>
Вот метод roomdata GET
$http({ method:'GET', url: '&hotel_id=' +$scope.current_Hotel.hotel_id }).then(function(response){ var roomdata = response.data; $scope.roomdata = roomdata; var roomtype = roomdata.data; });
И JSON для этого
{ status: 200, message: "Packages Found", data: [ { room_type_id: "9", hotel_id: "40", room_type: "Delux", total_rooms: "10", rack_price: "2500", image: "47", }, { room_type_id: "214", hotel_id: "40", room_type: "Super Delux", total_rooms: "30", rack_price: "3000", image: "495", } ] }
$scope.fetchPlan = function(x){ $http({ method:'POST', url: 'check_in='+ $scope.today+'&check_out='+$scope.tomorrow+'&room_type=' + x.room_type_id + '&day=1' }).then(function(response2){ var plan_data = response2.data; x.price = angular.fromJson(plan_data.price); x.plan_name = angular.fromJson(plan_data.plan_name); $scope.selvalue = x.plan_name[0]; x.price = x.price[0]; $scope.setPrice = function(){ var selected = this.selvalue; var index = plan_data.plan_name.indexOf(selected); $scope.price = plan_data.price[index]; };
Вот данные JSON для plan_data для одного x. room_type_id
{ price: "["2700","2500"]", plan_type: "["CP","EP"]", plan_name: "["Summer Plan","Summer Plan"]", }
и для другого x. room_type_id
{ price: "["2000","1200"]", plan_type: "["CP","EP"]", plan_name: "["Summer Plan","Custom Plan"]", }
Что я уже пробовал:
Так что в настоящее время мои параметры отображаются нормально. Но в моем {{x. price}} он отображается как 2000 в одной строке и 2700 в другой строке, что правильно. Но значение не меняется, когда я выбираю другие варианты. Что я делаю не так?
EDIT: это потому, что у меня есть два летних плана в первом x.room_type_id. Я могу присоединиться plan_name и plan_type и показать его в опциях, как летний план(КП) и летний план(ЕР). Я думаю, что это сработает именно так