我有一个JSON结构如下
var myJson = {
"Number of Devices":2,
"Block Devices":{
"bdev0":{
"Backend_Device_Path":"/dev/ram1",
"Capacity":"16777216",
"Bytes_Written":9848,
"timestamp":"4365093970",
"IO_Operations":87204,
"Guest_Device_Name":"vdb",
"Bytes_Read":107619,
"Guest_IP_Address":"192.168.26.88"
},
"bdev1":{
"Backend_Device_Path":"/dev/ram2",
"Capacity":"16777216",
"Bytes_Written":10062,
"timestamp":"9365093970",
"IO_Operations":93789,
"Guest_Device_Name":"vdb",
"Bytes_Read":116524,
"Guest_IP_Address":"192.168.26.100"
}
}
}
我想选择块设备bdev0,bdev1 ...以及它们的值通常这很容易使用vanilla javascript中的Object.keys但似乎我不能在角度中使用此功能所以我尝试了角度。 forEach但它返回undefined。
这是我能走多远
function getData(){
$http.get(path)
.success(function(data){
$scope.devices = data
angular.forEach($scope.devices, function(item){
console.log(item['Block Devices']);
})
})
}
答案 0 :(得分:5)
使用下面的代码段中的forEach
来访问所需的属性:
angular.forEach($scope.devices['Block Devices'], function(value, key) {
console.log(value, key);
// Would log value of $scope.devices['Block Devices'][key]
// and key name which is 'bdev0', 'bdev1' etc.
})
通过这种方式,您可以将bdev0
,bdev1
的值视为值,并在回调函数中将设备命名为key
。
答案 1 :(得分:0)
Angular是一个javascript框架。任何在vanilla javascript中工作的东西也可以在这里工作。 关于你的问题:你应该像这样迭代:
angular.forEach($scope.devices['Block Devices'], function(value, key){
console.log(key);
})
这将控制bdev0
,bdev1
等。