2016-09-28 131 views
0

我有一個JSON響應從後端 JSON如下:處理JSON響應陣列

{ 
    "json": { 
     "response": { 
      "servicetype": "1", 
      "functiontype": "10011", 
      "statuscode": "0", 
      "statusmessage": "Success", 
      "data":{ 
       "roleid": 36, 
       "rolename": "Product Managers", 
       "divisionlabel": "Department ", 
       "subdivisionlabel": "Category", 
       "roleinformation": { 
        "QA": [ 
        { 
         "White Box Testing": 10 
        } 
        ] 
       } 
       }, 
       { 
       "roleid": 38, 
       "rolename": "Managers", 
       "divisionlabel": "Department ", 
       "subdivisionlabel": "Category", 
       "roleinformation": { 
        "QA": [ 
        { 
         "Black Box Testing": 10 
        } 
        ] 
       } 
       } 

      } 
     } 
     } 
    } 

我曾經在一個下拉$ scope.model.rolename插入我的角色名。

如果我的角色名稱被選爲產品經理,我想給出我的$ scope.maxcount值的值爲"White Box Testing": 10。它應該是動態的,根據選擇的值會改變。現在在下拉菜單中,如果我選擇Manager,$ scoope.maxcount for manager的值將會改變。我已經完成,直到下拉,不知道後處理。

JS:

` `UserService.getAssignRoles(json).then(function(response) { 

if (response.json.response.statuscode == 0 && response.json.response.statusmessage == 'Success') 
{ 
    $scope.model.roles= [], assignrolesArray = []; 

      assignrolesArray = unasresdata.concat(assresdata); 

    $scope.model.assignroles = assignrolesArray; 

} 
}); 

HTML:

<select class="form-control" name="role" 
      ng-model="model.rolename" 
      ng-change="getassignRole(model.rolename)"> 
    <option selected>Select Roles</option> 
    <option ng-repeat="role in model.assignroles track by $index" 
      value="{{role.rolename}}">{{role.rolename}}</option> 
    </select> 
    <input type = "text" ng-model=$scope.maxcount> 
+0

https://jsfiddle.net/keyurshah24/5kpxzrgf/ –

回答

0

你可以通過你的model.assignroles和範圍值到這個getassignRole()函數,並從,你可以得到屬性並將其設置爲你的範圍變量。

請安裝lodash庫並注入它。

HTML

ng-change="getassignRole(model.assignroles, model)"

JS

$scope.getassignRole= function(model.assignroles, rolename){ 
    console.log(model.assignroles); 
    var test = _.filter(model.assignroles, function(o){ 
    return o.rolename === rolename; 
    }) 
    console.log(rolename); 
    console.log(test[0].roleinformation);  
}; 

樣品的jsfiddle:https://jsfiddle.net/alpeshprajapati/5kpxzrgf/1/

然後,您可以訪問所需的屬性。

希望它有幫助。