AngularJS Select 在对象数组上使用 ng-options

AngularJS Select with ng-options on array of objects

我的数据如下所示:

  {
    "count": 0,
    "QHPIssuerNames": [
        "NOV BCBS",
        "mark issuer",
        "Release 3 issuer",
        "Los angles issuer"
     ],
    "QDPIssuerNames": [
        New One",
        "jan issuer",
        "Manage Issuer",
        "test enrollment",
        "testing issuer p"
    ]
}

我想添加一个 select 到我的 html 从数组加载数据。

<select 
    name="issuer" 
    id="issuer"
    ng-init="vm.selectedData = vm.inputData.issuer[0]" 
    class="form-control" 
    ng-model="vm.inputData.issuer"
    ng-options="label group by group for value in vm.inputData.issuer"></select>

jsfiddle

我的解决方案涉及将 object of arrays 转换为 array of objects,我尝试使用原始对象创建解决方案,但问题是我无法创建多级 select使用对象。它需要将对象拆分为单个元素才能获得所需的结果,基本上我遍历原始数组并删除第一个条目 count:0,因为在迭代过程中不需要它,然后分配最终数组的值。

var app = angular.module('myApp', []);

app.controller('MyController', function MyController($scope) {
  vm = this;
  vm.inputData = {
    "count": 0,
    "QHPIssuerNames": [
      "NOV BCBS",
      "mark issuer",
      "Release 3 issuer",
      "Los angles issuer"
    ],
    "QDPIssuerNames": [
      "New One",
      "jan issuer",
      "Manage Issuer",
      "test enrollment",
      "testing issuer p"
    ]
  };
  vm.newArray = vm.inputData;
  delete vm.newArray.count;
  vm.finalArray = [];
  for (var k in vm.newArray) {
    for (var j of vm.newArray[k]) {
      vm.finalArray.push({
        key: k,
        value: j
      })
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller='MyController as vm' ng-app="myApp">
  <select name="issuer" id="issuer" class="form-control" ng-init="vm.selectedData = vm.finalArray[0]" ng-model="vm.selectedData" ng-options="x.value group by x.key for x in vm.finalArray"></select>
</div>