如何使用angular获取json对象的名称

How to get name of json object with angular

本文关键字:对象 json 何使用 angular 获取      更新时间:2023-09-26

我正在尝试从数据集中获取json对象的名称(在本例中为bdev0bdev1)。

到目前为止,我已经尝试了ng个选项,但没有成功。在下面的代码中,我试图实现的只是检索json对象的名称。到目前为止,我尝试过的所有例子都不适用于我的案例。

jsfiddle

代码:

var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
    $scope.data = [{
        "Block_Devices": {
            "bdev0": {
                "Backend_Device_Path": "/dev/ram1",
                "Capacity": "16777216",
                "Bytes_Written": 1577,
                "timestamp": "4365093970",
                "IO_Operations": 17757,
                "Guest_Device_Name": "vdb",
                "Bytes_Read": 17793,
                "Guest_IP_Address": "192.168.26.88"
            },
            "bdev1": {
                "Backend_Device_Path": "/dev/ram2",
                "Capacity": "16777216",
                "Bytes_Written": 1975,
                "timestamp": "9365093970",
                "IO_Operations": 21380,
                "Guest_Device_Name": "vdb",
                "Bytes_Read": 20424,
                "Guest_IP_Address": "192.168.26.100"
            }
        },
        "Number of Devices": 2
    }]
}

HTML

<div ng-controller="MyCtrl">
  <select name="Block_Devices" ng-model="selectedDevice"  ng-options="value.Block_Devices for value in data">
  <option value="">Please Select Device</option>
    </select>
</div>
Selected Device = {{selectedDevice}}

您可以使用ng-repeat="(key, value) in array"语法。

<div ng-repeat="(key, value) in data[0].Block_Devices">
{{key}}
</div>

{{key}}将是Block_Devices的属性
参见示例jsfiddle

正如Bon在我之前所说,你可以像在这个jsfiddle 中一样

  <select name="Block_Devices" ng-model="selectedDevice.Bytes_Written" ng-options="key for (key, value) in data[0].Block_Devices">
    <option value="">Please Select Device</option>
  </select>