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

2024-02-06

我这里初始化

 $scope.statuses = [];

然后,如果我只是将 $http.get 中的数据设置为 $scope 变量,那么“有效”,但我需要对其进行更多过滤。

$scope.statuses = result.data.Devices; 
console.log($scope.statuses);

这会在开发工具控制台输出中返回这样的数据数组

0:对象 $$哈希键 : “对象:5” 援助 : “oAAABTUAAg==” DKi指数 : “DKi00000002” 默认有效负载 : “C:\程序数据\” 设备ID : “00022B9A000000010001” 设备状态 : 3 清单ID列表 : 数组[3] 待处理清单 ID : 无效的 待处理时间戳 : “0001-01-01T00:00:00” 沙 : “R2tiZRQgY/iohXZt5O4HaQwtVe/adWU2VOcKaelJ3Us=” 暂存清单 ID 列表 : 数组[0]

不过我只想要一些具体数据

$scope.statuses = result.data.Devices.DeviceStatus;

为什么它说“未定义”?我该怎么做?

所以 0:对象 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>
...

本质上我希望在 Javascript /Angular (.js) 进入 ng-repeat 循环之前操作数据

那么 $scope 是否是正确的使用方式呢?

我知道我有一些数据需要更改,例如

字段中的某些数据被 [] 包围,例如[01,02,03]这样做 {{ device.aid.join(',') }} 会“修复”[] 问题,但我需要有一些这样的功能?我可以在哪里使用这个?

// usage {{displayArchived(item.archives)}}
$scope.displayArchived = function(archives){
    return (archives.length > 0) ? archives.join(',') : 'none';
};

那么“let”对 DeviceStatus 的数量有帮助吗?

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

在这种情况下,result.data.Devices是一个对象数组,看起来像这样:

[
   {DeviceId : "00022B9A000000010001" DeviceStatus : 3 .... },
   {DeviceId : "00022B9A000030011111" DeviceStatus : 9 ...},
   ....
]

所以当你试图得到result.data.Devices.DeviceStatus,没有名为的数组元素DeviceStatus,这就是你回来的原因undefined.

您将需要遍历设备数组来获取特定设备的DeviceStatus:

angular.forEach(result.data.Devices, function(value, index){
           $scope.statuses.push(value.DeviceStatus);
         });

或者,如果您知道自己想要哪个设备,则可以直接访问:

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

EDIT:

如果您想获取所有设备并使用模板显示 {{ device.DeviceStatus }},这里有一个解决方案:

Code:

$scope.devices = result.data.Devices;

模板:

<div ng-repeat="device in devices">
    {{ device.DeviceStatus }} 
</div>

在我们的代码中,我们分配request.data.Devices数组到$scope.devices。然后在模板中,我们使用ng-repeat去经历每一个device in $scope.devices并显示设备的DeviceStatus.

EDIT2:

为了将 DeviceStatus 与其实际名称相匹配,您可以创建自定义过滤器。

在您的代码中创建过滤器:

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>

我们用管道输送DeviceId进入我们的习惯deviceStatus过滤器以便在模板中获取正确的状态名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 将特定数据检索到 $scope 变量中不起作用 的相关文章

随机推荐

  • 在 os X 10.7 Lion 上设置 Django 的最佳方法是什么?

    我正在 os X 10 7 上通过原始安装和 Xcode 4 3 设置 Python 和 Django 我尝试使用Python的默认安装 Library Frameworks Python framework Versions 2 7 li
  • 如何通过多态优雅地转换 switch+enum

    我正在尝试用类型类替换简单的枚举 也就是说 从每种类型的基派生一个类 例如 而不是 enum E BASE EB ALPHA EB BRAVO E BASE message someMessage switch message case E
  • Python Discord 机器人 - 协程从未被等待

    我正在开发一个 Discord 机器人 它在某种程度上可以工作 但每隔几分钟就会崩溃 它给了我一个错误 比如 任务已销毁但正在等待处理 我发现了我必须摆脱我的信息response request get url 并将其替换为async wi
  • 检查 C 编译器是否工作...不

    我最近卸载了 Xcode 4 2 并重新安装了 Xcode 4 3 1 已安装Command Line Tools还 错误提示 C 编译器不起作用 搜了一下这个错误 说是未安装Xcode时发生的 我缺少什么 rvm install 1 9
  • 如何将 ZonedDateTime 转换为日期?

    我正在尝试在我的数据库中设置一个与服务器无关的日期时间 我相信这样做的最佳实践是设置 UTC 日期时间 我的数据库服务器是 Cassandra Java 的数据库驱动程序仅理解日期类型 因此 假设在我的代码中我现在使用新的 Java 8 Z
  • iwlist() 命令如何扫描无线网络?

    我想知道 iwlist 命令如何在 Linux 中扫描可用的无线网络 我阅读了它的源代码 发现有一个 ioctl 调用 使用 SIOCSIWSCAN 来触发扫描 并使用 SIOCGIWSCAN 来获取扫描结果 但是这些系统调用如何捕获和分析
  • 在 JBoss 中使用多重登录模块

    我是身份验证和安全领域的新手 我正在尝试扩展我的应用程序的身份验证机制 该机制当前提供传统的用户名 密码身份验证 以提供用户通过 LDAP 服务器进行身份验证 在当前的实现中 应用程序使用j 安全检查来自服务器 API 的线程对用户进行身份
  • _CDSnapshot_[entityName]_ 的多个实例

    我看到数以千计的实例CD快照 entityName 使用 instruments 来跟踪未引用的分配时 这是什么 我认为它与 CoreData 相关 是的 这与核心数据有关 我相信这是可以预料的 请参阅我的回复 NSManagedObjec
  • 一个用户的 Python 模块导入错误,但另一个用户没有错误

    这有效 root host usr bin python26 script py Success 这会导致错误 user host usr bin python26 script py ImportError No module named
  • 从 pypi 进行 pip install 可以,但从 testpypi 失败(找不到需求)

    我正在尝试创建我的第一个 python 包 为了不搞砸整个交易 我一直在尝试将其上传到 testpypi 服务器 这似乎很顺利 sdist 创建并上传没有显示任何错误 但是 当我尝试将其安装到新的 virtualenv 时https tes
  • wxPython 最好的实时绘图小部件是什么?

    我想使用 Python 和 wxPython 显示一个包含一条或两条曲线 每秒最多 50 个样本的实时图表 该小部件应支持 Win32 和 Linux 平台 欢迎任何提示 编辑添加 我不需要以 50 fps 更新显示 但需要在两条曲线上显示
  • 文件夹未显示在存储桶存储中

    所以我的问题是安装时有一些文件没有显示在 gcsfuse 中 如果我使用 gsutils ls 我会在在线控制台中看到它们 另外 如果我在存储桶中手动创建文件夹 我就可以看到其中的文件 但我需要先创建它 有什么建议么 gs mybucket
  • 如何在 Spring Boot 中将 Cookie 设置为安全标志

    我正在研究 Spring Boot 完全不知道它是如何工作的 在验证登录时 JSESSIONID 被创建为 cookie 登录代码如下 protected void configure HttpSecurity http throws Ex
  • Linq to SQL Int16 在 SQL 命令中转换为 Int32

    通过方法参数 Int16 id 以及 Linq to SQL where 子句 where id HasValue m Id id 数据上下文中条件的结果命令文本是 从可视化工具 SELECT t0 Id t0 Name t0 IsActi
  • System.UnauthorizedAccessException:创建 COM 组件的实例失败,并出现错误 80070005 (C#)

    我在使用 C NET 命令行应用程序时遇到问题 其主要思想是使用 COM 对象从其他程序获取数据 当手动执行或作为 Node js 服务器内的子进程运行时 它工作正常 但是当整个项目作为 Windows 服务安装时 C 应用程序会响应以下错
  • 如何在单独的文件中创建命名查询

    我需要将所有命名查询保存在一个单独的文件中 例如 javax persistence NamedQueries NamedQuery name Employee findAll query SELECT e FROM Employee e
  • web.config 中与 targetFramework 相关的配置错误

    我在 Visual Studio 2015 中制作了一个 MVC 网站 它可以在我的本地主机上运行 但是当我发布我的网站并放入我的主机时 它不起作用 它给了我这个错误通知 应用程序中的服务器错误 配置错误 解析器错误消息 targetFra
  • FFmpeg 使用 URL 进行文件转换

    我需要将 MP4 转换为 AVI MP4 视频上传到 Windows Azure Blob 存储中 并且存储可公开访问 当我们编写 ffmpeg 命令行时我的问题 我可以提供 Blob 存储中视频的 URL吗 ffmpeg ihttps a
  • 用于重试同一请求的 HTTP 状态码

    是否有 HTTP 状态代码来指示客户端再次执行相同的请求 我面临着服务器在处理请求时必须 等待 锁消失的情况 但当锁消失时 请求可能会接近其超时限制 因此 一旦锁定清除 我想指示客户端再次执行相同的请求 我想出的最好的办法是使用 HTTP
  • Angular 将特定数据检索到 $scope 变量中不起作用

    我这里初始化 scope statuses 然后 如果我只是将 http get 中的数据设置为 scope 变量 那么 有效 但我需要对其进行更多过滤 scope statuses result data Devices console