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>
我的解决方案涉及将 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>
我的数据如下所示:
{
"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>
我的解决方案涉及将 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>