Javascript 将特定数据检索到$scope变量不起作用

Javascript 将特定数据检索到$scope变量不起作用,javascript,angularjs,json,angularjs-scope,Javascript,Angularjs,Json,Angularjs Scope,我在这里初始化 $scope.statuses = []; 然后,如果我简单地将数据从$http.get设置为$scope变量,那么这“起作用”,但我需要进一步过滤它 $scope.statuses = result.data.Devices; console.log($scope.statuses); 在dev工具控制台输出中返回如下数据数组 0:对象 $$hashKey : “对象:5” 帮助 : “oAAABTUAAg==” DKiIndex : “DKi00000002” 默认有

我在这里初始化

 $scope.statuses = [];
然后,如果我简单地将数据从$http.get设置为$scope变量,那么这“起作用”,但我需要进一步过滤它

$scope.statuses = result.data.Devices; 
console.log($scope.statuses);
在dev工具控制台输出中返回如下数据数组

0:对象 $$hashKey : “对象:5” 帮助 : “oAAABTUAAg==” DKiIndex : “DKi00000002” 默认有效载荷 : “C:\ProgramData\” 设备ID : “00022B9A0000000010001” 设备状态 : 3. 表现主义者 : 数组[3] 悬而未决 : 无效的 等待时间戳 : “0001-01-01T00:00:00” 沙 : “R2tiZRQgY/iohXZt5O4HaQwtVe/adWU2VOcKaelJ3Us=” 舞台游手好闲者 : 数组[0]

然而,我只想要一些具体的数据

$scope.statuses = result.data.Devices.DeviceStatus;
为什么会说“未定义”,我该怎么做

所以0:Object DeviceStatus就在那里

<div ng-app="app" ng-controller="DeviceController as vm">


...
        <tr ng-repeat="device in vm.devices">
             <td>{{device.DeviceId}}</td>
             <td>{{device.DeviceStatus}}</td>
             <td>{{device.Aid}}</td>
             <td>{{device.Sha}}</td>
        </tr>
...
那么“let”对设备状态的数量有帮助吗

  let statuses = ['Old Device', 'New Device', 'Activated', 'Unactivated'];

在本例中,
result.data.Devices
是一个如下所示的对象数组:

[
   {DeviceId : "00022B9A000000010001" DeviceStatus : 3 .... },
   {DeviceId : "00022B9A000030011111" DeviceStatus : 9 ...},
   ....
]
因此,当您尝试获取
result.data.Devices.DeviceStatus
时,没有名为
DeviceStatus
的数组元素,这就是为什么返回
未定义的

您需要遍历设备数组以获取特定设备的
DeviceStatus

angular.forEach(result.data.Devices, function(value, index){
           $scope.statuses.push(value.DeviceStatus);
         });
或者,如果您知道需要哪种设备,也可以直接访问:

var index = 1;
$scope.statuses = result.data.Devices[index].DeviceStatus;
编辑:

如果要获取所有设备并使用模板显示{{device.DeviceStatus}},请使用以下解决方案:

代码:

模板:

<div ng-repeat="device in devices">
    {{ device.DeviceStatus }} 
</div>
您现在可以在模板中使用新过滤器:

<td>{{device.DeviceId | deviceStatus}}</td>
{{device.DeviceId | deviceStatus}

为了在模板中获得正确的状态名称,我们将
DeviceId
导入我们的自定义
deviceStatus
过滤器。

如果有
数组
,则必须指定要获取
deviceStatus
的位置(索引)。例如,如果要获取第一个DeviceStatus:
$scope.status=result.data.Devices[0]。DeviceStatus{{device.DeviceStatus}}在我的html中,所以我想捕获ng repeat中的每个值,我确实想使用函数show your html对其进行一点操作,然后是,非常抱歉-现在编辑问题。非常感谢itI添加了更多代码,我需要查看DeviceStatus=1然后DeviceStatus=“已激活”或者如果DeviceStatus=2然后DeviceStatus=“未激活”等等。。我怎样才能做到这一点?谢谢你advance@JeremyMiller我添加了有关如何使用自定义过滤器检查设备状态代码的信息。
app
未定义,也未定义。我发布了一个新问题,这一次我有一个Plunker,它可以帮助您了解我是如何设置应用程序的。我在看视频和学习。。。。我感谢你的帮助
<div ng-repeat="device in devices">
    {{ device.DeviceStatus }} 
</div>
app.filter('deviceStatus', function () {
  return function (status_id) {
      var statuses = ['Old Device', 'New Device', 'Activated', 'Unactivated'];
      return statuses[status_id];
  };
});
<td>{{device.DeviceId | deviceStatus}}</td>