Angular HTTP 循环 [重复]

2023-12-13

我对 Angular 应用程序有疑问。

我有一个包含语言短代码的数组(“en”、“fr”、...)。基本上,我希望 Angular 在该数组上循环并对每个值发出 HTTP get 请求.

for (var i in $scope.langs) {
      console.log($scope.langs[i].shortName);
      $http.get($scope.appURL + $scope.langs[i].shortName + '/api/products/?format=json&resto='+ $scope.restoID)
         .then(function(res){
            $scope.products = angular.fromJson(res.data);   
            window.localStorage.setItem("products-"+$scope.langs[i].shortName, JSON.stringify(res.data));
            $scope.products =  JSON.parse(window.localStorage.getItem("products-"+$scope.langs[i].shortName));
            console.log('LANG = '+ $scope.langs[i].shortName, $scope.products);
          });
}

第一个日志显示:

fr
en

伟大的 !最后一个日志被抛出两次(我的数组中有 2 个语言),也很棒。

问题是在循环中,日志在两种情况下显示相同的语言,当我应该有一个 fr/api/... 和一个 en/api/... 时,它总是记录 2 en/api/...

我不知道是否清楚...有什么想法吗?


问题是你的i在所有 ajax 请求返回之前变量会发生变化。因此,它总是等于$scope.langs.length - 1当你的回调执行时。你会想要围绕你的每个$http要求。 Angular 为此提供了一些内置功能:

angular.forEach($scope.langs, function(lang){
  // Here, the lang object will represent the lang you called the request on for the scope of the function
  $http.get($scope.appURL + lang.shortName + '/whatever/you/want', function(res) {
    // Do whatever you want with lang here. lang will be the same object you called the request with as it resides in the same 'closure'
    window.localStorage.setItem(lang.shortName, JSON.stringify(res.data));
  });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular HTTP 循环 [重复] 的相关文章

随机推荐

  • 拆分值对并使用 UDF 创建表

    我一直在尝试编写一个表值函数 它将值对作为参数并返回一个包含两列的表 下面是我想要做的函数签名 FUNCTION dbo ValuePairParser DelimitedValuePairs VARCHAR MAX Delimiter C
  • 将onclick添加到UI材质按钮

    我正在尝试将 onClick 事件处理程序添加到材质 ui 中 有时会调用它 有时不会 但是 它与常规按钮一起工作正常 handleClick event gt const value event target value console
  • 使用 Symfony2 将 xml 反序列化为对象

    我通过 API 收集一些 xml 格式的数据 并希望将其反序列化到对象列表中 我正在使用 Symfony2 并找到 JMSSerializerBundle 但我真的不知道如何使用它 我知道 Sf2 允许将对象序列化到数组 从数组反序列化 但
  • 按钮 OnClick 事件在 ASP.NET Web 表单应用程序中不起作用

    我跟着本教程创建以下 ASP NET Web 表单以将参数发送到存储过程并使用 Microsoft Report 显示结果 this is 不完整 产品 aspx file
  • 读者单子的目的是什么?

    reader monad 太复杂了 而且似乎没什么用处 如果我没记错的话 在 Java 或 C 这样的命令式语言中 读者 monad 没有等效的概念 你能给我一个简单的例子并稍微澄清一下吗 别害怕 reader monad 实际上并没有那么
  • MySQL以不同的排序顺序对多列进行排序

    我有一个表 其中包含三个数据类型字段date int and bigint 我想使用所有这三列对我的选择查询进行排序 我想将它们全部按降序排列 例如 Select From mytbl order by date desc intnum d
  • 通道功能 V1_3 是必需的,但不支持:在 Hyperledger Fabric 中制作我的第一个网络

    在 OSX 上启动我的第一个 Hyperledger 网络 我使用脚本安装了示例文件 curl sSL http bitlyURLThatStackoverflow won t let me us bash s 1 2 1 The ran
  • Python 打包:pyproject.toml 中的构建需求 VS setup_requires

    在有点复杂的Python中setup py配置 通常需要已经存在的其他库才能执行setuptools setup 就我而言 这将是setuptools gt 45 0 and cython gt 0 29 现在 我有两个选项来声明这些构建时
  • Java 2d 鼠标点方向旋转

    到目前为止 我有一个java应用程序 我在其中画一个圆圈 玩家 然后在顶部画一个绿色矩形 枪管 我有它 所以当玩家移动时 桶会随之移动 我希望它找到鼠标指向的位置 然后相应地旋转桶 有关我的意思的示例 请观看我发现的这个视频http www
  • UWP 的 BroadFileSystemAccess 不起作用

    我正在编写一个应用程序 它需要访问文本文件的权限 因为未经许可它会抛出异常 访问被拒绝 我添加到 Package appxmanifest 特定行 xmlns rescap http schemas microsoft com appx m
  • pandas dataframe 选择多索引中的列[重复]

    这个问题在这里已经有答案了 我有以下 pd DataFrame Name 0 1 Col A B A B 0 0 409511 0 537108 0 355529 0 212134 1 0 332276 1 087013 0 083684
  • 正则表达式将 img 标签与特定属性类匹配

    我很长时间都在与这个正则表达式作斗争 但我找不到任何解决办法 我使用基于 javascript 的工具来测试和编写表达式 当放入php页面并与preg匹配时 结果是不同的
  • openssl - 通过 Java 解密

    全部 我正在努力解决这个问题 我有包含命令的bat文件 openssl smime decrypt binary inform DER recip path to certificate inkey path to private key
  • 重新安装 Visual Studio 2017 本地主机证书

    在安装 VS2017 的过程中 或者稍后 程序会安装一个用于本地开发的证书 一切都工作正常 直到我安装了 Fiddler 从那一刻起 VS2017 证书停止工作 每当我导航到本地主机应用程序时 我都会收到 您的连接不是私有的 消息 有什么想
  • 有没有办法使用最新的 Facebook 应用程序评论来获得 Facebook read_stream 权限?

    我正在开发社交网络 iPhone 应用程序 其中我们有 facebook 作为选项之一 我们必须显示用户的提要 但为此我需要read stream允许 不幸的是 我们的应用程序尚未经过验证 这是我们从 Facebook 审核团队收到的消息
  • 如何从因重新启动而离开的位置继续安装?

    在安装某些软件包期间重新启动后如何继续安装程序 实际上 我已经使用构建了一个项目的安装程序包WiX 捆绑包 有不同的包要安装在链中 但是当它安装微软时Windows安装程序4 5 msi 它将重新启动电脑 重新启动后 我希望安装继续 我怎样
  • 在python中使用bing或google API获取位置坐标

    这是我的问题 我有一个示例文本文件 我在其中通过抓取各种 html 页面来存储文本数据 该文本包含有关各种事件及其时间和地点的信息 我想获取这些位置的坐标 我不知道如何在 python 中做到这一点 我正在使用 nltk 来识别此示例文本中
  • Android - 方向变化时的动态片段问题

    我在动态片段方面遇到问题 如果我不改变方向 它就可以正常工作 当我改变方向时 我单击 ListView 项目 这不是改变 textview 这是 DynamicActivity 类 public class DynamicActivity
  • Selenium 无法启动 IE。

    Selenium 无法启动 IE 10 56 25 005 INFO org openqa selenium server SeleniumDriverResourceHandler Command request getNewBrowse
  • Angular HTTP 循环 [重复]

    这个问题在这里已经有答案了 我对 Angular 应用程序有疑问 我有一个包含语言短代码的数组 en fr 基本上 我希望 Angular 在该数组上循环并对每个值发出 HTTP get 请求 for var i in scope lang