【问题标题】:How to interate over JSON objects with angular js如何使用 angularjs 遍历 JSON 对象
【发布时间】:2016-05-20 19:11:39
【问题描述】:

我的 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,但似乎我不能在 angular 中使用此函数,所以我尝试了 angular。 forEach 但它返回未定义。

这是我能走多远

function getData(){
  $http.get(path)
  .success(function(data){
    $scope.devices = data
    angular.forEach($scope.devices, function(item){
                   console.log(item['Block Devices']);
               })


  })
}

【问题讨论】:

  • 顺便说一句,这不是 JSON,它只是一个对象(通过对象文字创建)。 JSON 看起来很相似,但它是对象的 string 表示(序列化)。

标签: javascript angularjs json


【解决方案1】:

使用forEach 如下面的代码 sn-p 来访问所需的属性:

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.
})

通过这种方式,您可以在回调函数中以 value 的形式访问 bdev0bdev1 的值,并将设备命名为 key

【讨论】:

  • 确实很有价值,但我想要的只是 bdev0 和 bdev1 只是这些名称,以便我可以将它们推送到下拉列表
  • 在回调中访问名称为key
【解决方案2】:

Angular 是一个 JavaScript 框架。在 vanilla javascript 中工作的任何东西也可以在这里工作。 关于你的问题:你应该这样迭代:

angular.forEach($scope.devices['Block Devices'], function(value, key){
       console.log(key);
})

这将控制bdev0bdev1 等。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
相关资源
最近更新 更多