AngularJS - 将多个 get 请求收集到 json 数组中,然后传递给指令

2024-02-06

我是角度新手,一直在努力解决我的问题。

我需要多次访问 API 来获取用户数据,将所有内容存储为 JSON 数组,当收集所有数据(所有结果作为一个数组)时,需要将其传递给指令,该指令将使用它来绘制可视化(例如 d3.js) -饼形图)。

$scope.allData = [];

$http.get("****link here****/students")
    .success(function (data) {
        students = data;

        for (i = 0; i < students.length; i = i + 1) {

            $http.get("**** link here ****/quest/" + students[i].id)
                .success(function (data) {
                    quest = data;

         $scope.allData.push({
                            id: quest.id,
                            value: quest.length
                        });
           }
        }

然后将其传递给指令

   <bar-chart data='allData'></bar-chart>

即使我在指令中设置 watch 并将范围设置为“=”,指令也会得到空数组。

在我的其他代码中,当我只对 json 数组执行一个 http get 调用时,我可以轻松地将其传递给指令,并且工作正常。


EDIT1:

好的,所以我现在使用前提,但 allData 数组仍然是 0。 即使有这样简单的例子:

 $scope.allData = [];
 var promieses = [];
 for (i = 0; i < 10; i = i + 1) {

            promieses.push($http.get("***link***/student/" + students[i].id));
}

$q.all(promieses).then(function (data) {
    for (i = 0; i < data.length; i = i + 1) {
        $scope.allData.push("test");
    }
});

在html中{{allData]] // 0


这是一个释放力量的好地方$q https://docs.angularjs.org/api/ng/service/%24q。您可以等待所有承诺解决,然后使用$q.all方法。它只是简单地Combines multiple promises into a single promise that is resolved when all of the input promises are resolved.

看这个例子:

students = data;
var promises = [];
for (i = 0; i < students.length; i = i + 1) {

    promises.push($http.get("**** link here ****/quest/" + students[i].id));

}

$q.all(promises).then(function(response) {
    for (var i = 0; i < response.length; i++) {
         $scope.allData.push({
             id: response[i].data.id,
             value: response[i].data.length
         });
    }
})

在这里查看它的实际效果:http://plnkr.co/edit/TF2pAnIkWquX1Y4aHExG?p=preview http://plnkr.co/edit/TF2pAnIkWquX1Y4aHExG?p=preview

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

AngularJS - 将多个 get 请求收集到 json 数组中,然后传递给指令 的相关文章

  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • Postgres JSON 数据类型 Rails 查询

    我正在使用 Postgres 的 json 数据类型 但想要使用嵌套在 json 中的数据进行查询 排序 我想在 json 数据类型上使用 where 进行订购或查询 例如 我想查询关注者数量 gt 500 的用户 或者我想按关注者或关注数
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • 在 angularjs 应用程序中更改页面的位置哈希,无需重新加载页面

    我需要能够更改页面的位置哈希 例如从 到 page1 以便 angularjs 不会重新加载页面 有可能吗 在路由定义中添加此参数reloadOnSearch false 禁止在查询参数更改时重新加载基于 ui router 的视图 htt
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 使用日期字符串数组在引导日期选择器中设置禁用月份不起作用

    我有一个日期选择器 其配置如下 HTML div class input group date div
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • 最适合“正在进行的作业”的 HTTP 状态代码

    向客户端提供的最合适的 HTTP 状态代码是什么 表示 您的请求很好 但仍在进行中 请稍后在完全相同的位置回来查看 例如 假设客户端提交初始请求以启动繁重的查询 服务器立即返回一个 URL 客户端可以定期轮询该 URL 以获取结果 如果客户
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • Angular 2 - Http - 正确忽略空结果

    我有很多处理请求并简单返回 200 的 REST 端点 我注意到将结果映射为错误json 如果我尝试不进行任何类型的映射 我会看到浏览器警告它无法解析 XML 由于不返回任何内容是很常见的 我很好奇我应该如何处理响应 这是一个基本的代码示例
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 将 RequireJS 与遗留代码结合使用

    我正在处理一个非常大的项目 该项目使用 包含带有脚本标记的 javascript 文件的旧版 JSP 页面 使用其他 javascript 模块而不使用 RequireJS 的骨干模型和视图 现在 我们希望开始将 RequireJS 与 j
  • 强制输入数字小数位

    我想强制
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐

  • 如何加载引导缩略图

    我已经开始在一个项目中使用 Bootstrap 特别是缩略图组件 上文档中的缩略图示例 http twitter github com bootstrap components html thumbnails 示例代码如下 ul class
  • Class.forName() 与 ClassLoader.loadClass() - 哪个用于动态加载? [复制]

    这个问题在这里已经有答案了 动态加载类时 什么时候适合使用 Class forName SomeClass 我什么时候应该使用 ClassLoader getSystemClassLoader loadClass SomeClass 或者
  • constexpr 初始化数组以对内容进行排序

    这有点像一个谜题 而不是一个现实世界的问题 但我已经陷入了一种情况 我希望能够编写一些行为完全相同的东西 template
  • 多个子进程

    有人可以帮助我了解如何创建具有相同父进程的多个子进程 以便完成特定工作的 某些 部分吗 例如 应用于子进程的外部排序算法 每个子进程对一部分数据进行排序 最后父进程将它们合并 编辑 也许我应该提到用循环分叉多个子进程 以下是如何分叉 10
  • 我怎样才能改变每个游戏对象的移动速度?

    在层次结构中我有 2 ThirdPersonController 在 窗口 gt 动画器 中 我创建了新的空状态 将其称为 步行 并将其设置为 HumanoidWalk 以便在运行游戏时两个玩家都在步行 在其中一个上 我添加了脚本并将第二个
  • 用于预览窗口后面的屏幕状态的 Aero 功能是什么?

    我到处寻找如何在我的程序中使用 Aero 我找不到任何 C 函数可以预览您自己的窗口后面的窗口 就像文件资源管理器或任何主流浏览器在标题栏上所做的那样 有些程序只是添加一个看起来像 Windows 7 标题栏的图像来伪造它 没有 Aero
  • DNA 到 RNA 并使用 Perl 获取蛋白质

    我正在开发一个读取 DNA 并找到其 RNA 的项目 我必须用 Perl 实现它 但我不擅长 将该 RNA 分成三联体以获得其等效的蛋白质名称 我将解释步骤 1 将以下DNA转录为RNA 然后使用遗传密码将其翻译为氨基酸序列 Example
  • netcore5视图组件自定义视图搜索路径不适用于区域

    我已按照此文档查看视图组件 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 5 0 customize the vi
  • 验证 iOS 应用内购买的收据始终返回错误 21002

    我正在服务器端验证我的消费品应用内购买 也就是说 我通过以下方式从客户端获取收据 onChange of self storeObserver paymentStatus status in switch status case purch
  • .NET Windows 窗体应用程序是否可以在 64 位操作系统中运行,或者是否需要修改?

    一般来说 NET Windows 窗体应用程序可以在 64 位操作系统中运行吗 还是需要修改 如果它不依赖于 32 位外部库 例如 COM 组件 它将作为 64 位进程完美工作 并利用其优势 大地址空间 x64 指令集 如果它依赖于 32
  • xaml.cs 中的 Xamarin 局部变量并通过 XAML 文件进行打印

    我希望能够打印 XAML 中 CurrentOrder 的属性 这是我到目前为止所拥有的 OrderPage xaml cs public partial class OrderPage ContentPage private Order
  • 使用 MediatR 时可以让一个处理程序调用另一个处理程序吗?

    或者这被认为是不好的做法还是什么 我有一个通知触发 4 5 个处理程序 这些处理程序依次调用数据库来检索数据 每个这些调用也可以单独调用 因此它们本身就是请求 处理程序 Thanks Jimmy Bogard mediatr 的作者 说你应
  • CListCtrl 用鼠标选择多行

    There is a CListCtrl with SetExtendedStyle LVS EX GRIDLINES LVS EX FULLROWSELECT a single selection is false I want to b
  • 如何使用Windows Media Player播放加密的视频文件?

    我加密我的 mp4转换为自定义格式 opu 现在我应该解密我的文件并将它们保存到应用程序开始时的临时文件夹中 并使用它们来播放WindowsMediaPlayerC 中的控制 所以我有从临时文件夹中窃取文件的风险 防止我的文件被盗的最佳方法
  • 从亚马逊s3存储桶检索静态文件

    我正在尝试以这样的方式配置我的 nginx 每当出现一些错误的网关响应时 我都会尝试从 s3 存储桶中获取静态 html 内容 请求的url结构为some bucket folder1 folder2 text 数据存储在 s3 存储桶中
  • 如何设置编辑器以在 Windows 上使用 Git?

    我正在尝试Windows 上的 Git 我尝试 git commit 并收到此错误 终端很笨 但没有 VISUAL 也没有 编辑器定义 请提供 使用 m 或 F 选项的消息 所以我发现我需要一个名为 EDITOR 的环境变量 没问题 我将其
  • 单元测试 Maven 插件

    我正在寻找有关如何为 Maven 插件编写单元测试的信息 虽然有a page http maven apache org plugin developers plugin testing html在关于这一主题的 Maven 站点上 只有一
  • 不可哈希类型:“dict”类型错误[重复]

    这个问题在这里已经有答案了 假设我有这本字典 items 1 title u testing123 description u testing456 2 description u testing123 description u test
  • IPython 中的物理括号符号

    我正在努力拥有ket符号通常在乳胶中写为 ket psi 然而 当写在 当使用以下方式编写时 这也不起作用IPython display latex documentclass article usepackage amsmath begi
  • AngularJS - 将多个 get 请求收集到 json 数组中,然后传递给指令

    我是角度新手 一直在努力解决我的问题 我需要多次访问 API 来获取用户数据 将所有内容存储为 JSON 数组 当收集所有数据 所有结果作为一个数组 时 需要将其传递给指令 该指令将使用它来绘制可视化 例如 d3 js 饼形图 scope