обработка массива ответов JSON

0

У меня есть ответ 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 Оно должно быть динамическим, на основе выбора значение изменится. Теперь в раскрывающемся списке, если я выберу Менеджер, значение $ scoope.maxcount для менеджера изменится. Я сделал до выпадающего списка, не знаю, как справиться после него.

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>
Теги:
angularjs-ng-repeat

1 ответ

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/

Тогда вы можете получить доступ к требуемому имуществу.

Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню