如何绑定来自JSON字符串数组

时间:2016-10-11 11:27:55

标签: angularjs ionic-framework foreach angularjs-ng-repeat dropdown

我正在尝试从下面的JSON字符串附件绑定下拉列表,但我的最后一个JSON值正在覆盖所有值。我试图控制台,我已经在控制台中收到了个人值,但绑定时我无法做到。我使用了select选项和不同的选择更改选项但仍然卡住了。请尽可能帮助我。

我的HTML代码:

  <ion-list>
        <div ng-repeat="group in groups">
          <ion-item class="item-stable" ng-click="toggleGroup(group)" ng-class="{active: isGroupShown(group)}">
              <i class="icon" ng-class="isGroupShown(group) ? 'ion-minus' : 'ion-plus'"></i>
            &nbsp;
            {{group.name}}
          </ion-item>
          <ion-item class="item-accordion item-button-right" ng-repeat="item in group.items track by $id(item)" ng-show="isGroupShown(group)" style="height: 50px;">
            {{item.name}} 
            <select> <option selected>Select</option>
                  <option ng-repeat="itm in qty track by qty.id" value="{{itm.id}}">{{itm.price}}</option>
            </select>
          </ion-item> </div>
      </ion-list>

JSOn字符串:

  "category_name":{
    "1":{
    "menu_category_id":"1",
    "category_name":"Beverage Black Coffee",
    "itemname":{
    "1":{
    "menu_item_id":"1",
    "item_name":"Frespresso",
    "qty":{
    "50.00":{
    "full":"50.00",
    "half":null,
    "quater":null
    }
    }
},

控制器代码:

           var i =0;      
           angular.forEach(response.data.category_name, function(menu,key){
            $scope.groups[i] = {

            name: menu.category_name,
            items: [],
            qty:[],
            rate:[],
            show: false

            };
            angular.forEach(menu.itemname, function(itemid,key){

            $scope.groups[i].items.push({id:itemid.menu_item_id,name:itemid.item_name});
             angular.forEach(itemid.qty, function(qty,key){


            if(qty.fullqty!==null){
              $scope.groups[i].qty.push({type:'full',qty:qty.full});
              console.log("full : "+itemid.full +" Item Id "+itemid.menu_item_id);


              console.log(qty.item_name + " fullqty  " + qty.full_qty + " fullrate "+ qtyu.full_rate);
            }

            });


            });          


             i++;


           });

       } else{
           $ionicLoading.hide();
           msg = [];
           msg.push("- Something went Wrong!!! <br />");
           msg.push("- Plz try again! <br />");
           var alertPopup = $ionicPopup.alert({
             title: 'OOPS!!!',
             template: msg
            });
       }
      }).error(function(error) {
          console.log("Server error: " + error);
     });

}); 

1 个答案:

答案 0 :(得分:0)

解决了这个问题我很愚蠢地形成另一个不同步的数组,这就是为什么它没有正确绑定所以将它绑定到$ scope.groups [i] .items.push({id:itemid。 menu_item_id,名称:itemid.item_name});而不是形成另一个foreach