首页 \ 问答 \ 角度ng-repeat不检测变化(Angular ng-repeat not detecting changes)

角度ng-repeat不检测变化(Angular ng-repeat not detecting changes)

我正在使用ng-repeat通过http.get()迭代json响应。 在success()回调中,我运行for循环来创建一个新数组,该数组应由另一个ng-repeat处理。

码:

$http({
   method: "GET",
   url: "xxx",
   headers: {
    "Accept": "application/json;odata=verbose"
   }
   }).success(function (data, status, headers, config) {

     $scope.onboardings = data.d.results;
     var counter = {};

     for (var i = 0; i < $scope.onboardings.length; i += 1) {
           counter[$scope.onboardings[i].Company] = (counter[$scope.onboardings[i].Company] || 0) + 1;
         }

     $scope.onboardingCompanies = counter;
     console.log($scope.onboardingCompanies);
})

HTML:

<div ng-repeat="item in onboardingCompanies">
    <p>{{item.key}}</p>
    <p>{{item.value}}</p>
</div>

所以我需要ng-repeat来检测$scope.onboardingCompanies变化。 我知道这里有一些异常的麻烦。

console.log($scope.onboardingCompanies)

Object {Monjasa A/S (FRC): 35, C-bed BV: 2, Monjasa DMCC: 1, Monjasa Pte: 4, Monjasa SA: 9…}

任何建议?


I'm using ng-repeat to iterate over a json response via http.get(). Inside the success() callback i run a for-loop to create a new array which should be handled by another ng-repeat.

Code:

$http({
   method: "GET",
   url: "xxx",
   headers: {
    "Accept": "application/json;odata=verbose"
   }
   }).success(function (data, status, headers, config) {

     $scope.onboardings = data.d.results;
     var counter = {};

     for (var i = 0; i < $scope.onboardings.length; i += 1) {
           counter[$scope.onboardings[i].Company] = (counter[$scope.onboardings[i].Company] || 0) + 1;
         }

     $scope.onboardingCompanies = counter;
     console.log($scope.onboardingCompanies);
})

HTML:

<div ng-repeat="item in onboardingCompanies">
    <p>{{item.key}}</p>
    <p>{{item.value}}</p>
</div>

So I need the ng-repeat to detect changes in $scope.onboardingCompanies. I know there is some async trouble here.

console.log($scope.onboardingCompanies):

Object {Monjasa A/S (FRC): 35, C-bed BV: 2, Monjasa DMCC: 1, Monjasa Pte: 4, Monjasa SA: 9…}

Any advice?


原文:https://stackoverflow.com/questions/37567283
更新时间:2019-12-13 07:40

最满意答案

您的HTML是错误的:Angular不会为您提供具有keyvalue属性的对象,它会单独为您提供:

<div ng-repeat="(key,value) in onboardingCompanies">
    <p>{{key}}</p>
    <p>{{value}}</p>
</div>

您使用的表格ng-repeat="item in onboardingCompanies"将尝试迭代一个数组,但由于该对象不是数组,结果将为空。


Your HTML is wrong: Angular doesn't give you an object with key and value attributes, it gives you them separately:

<div ng-repeat="(key,value) in onboardingCompanies">
    <p>{{key}}</p>
    <p>{{value}}</p>
</div>

The form you used ng-repeat="item in onboardingCompanies" angular will attempt to iterate over an array, but as the object isn't an array the result will be empty.

2016-06-01

相关问答

更多

制作一个控制台游戏。(Making a console game. I want the game to end when they get 0 HP)

你的int main()是以最终退出的方式设置的, return 0; 声明。 就像其余的if (...)分支一样,在减去一些值后检查当前的hp数量。 当达到(或低于)零时,您可以简单地输出一条消息,然后(从您的main函数)退出(在main内部返回0有效地停止您的程序)。 一般来说,“玩家已经死了吗?” 检查将是你不止一次会做的事情,并且检查本身(以及任何类型的“你死的”消息)将是相同的,无论它实际发生在各个if ()分支的哪个位置。 我创建了一个新的方法,比如bool isPlayerDea

计算机被杀死时NodeJS关闭/错误事件?(NodeJS close/error event when computer gets killed?)

最后,流实际上是关闭的。 如果您尝试调用write,则会导致“Write after end”错误。 可悲的是,当流本身关闭时似乎没有事件被触发。 所以现在,我只想每隔几分钟写一些东西,看看这个流是否还活着。 In the end, the stream is actually closed. If you try to call write, then it will cause an "write after end" error. Sadly, it seems like there is

在Git中切换分支时撤消修改文件(Undo modifying of files while switching branches in Git)

除非您实际提交了所有这些文件,否则分支B不会“进行所有这些更改”。 到目前为止发生的所有事情是您已切换到分支B,并且这些更改在您的工作目录中仍然很突出。 你有几个选择: 您可以切换回分支A并提交更改。 git checkout branch_a git commit -m "some stuff that should be on branch_a" 然后切换回分支B. 您可以切换到分支A并“隐藏”更改: git checkout branch_a git stash 稍后,如果您想继续处理

php总是给予相同的响应(php always gives the same respone)

您不检查结果。 您只是检查它是否为非null。 顺便说一下,你也应该处理连接问题。 我会将你的支票修改为: if(mysqli_num_rows($result) == 1) { $flag['code'] = 1; } else { $flag['code'] = 0; } 这将检查您是否有一个结果,这意味着您有一个工作登录。 请记住哈希密码。 即使在开发中,您也应该保存密码。 You do not check the result. You are just checkin

创建PostgreSQL内部C函数的副本并将其加载为用户定义的函数(Create copy of PostgreSQL internal C function and load it as user defined function)

psql客户端询问您是否要重新连接的原因是因为后端是segfaulting,根据注释。 可以从这样的崩溃中收集核心转储并使用调试器(例如gdb)检查它以确切地找出它崩溃的位置。 但是,我最好的猜测是它崩溃了,因为你已经把一个大文件写成了postgresql的核心组件,单独编译它,并试图将它作为扩展模块加载。 文件numeric.c包含大量函数,静态变量和数据结构,您尝试仅复制一个函数。 运行的postgresql系统中已经存在所有这些函数,变量等。 当您编译您的numeric.c版本并加载它时,

Lucene搜索返回不同的结果(Lucene search return different results)

在更新安装期间,系统管理员已在服务器配置中指定了Lucene索引的相对路径 ,然后启动应用服务器。 首次启动后,我们的应用程序在数据库中对数据进行完全索引,然后每两小时增加一次索引。 我们的服务器每晚都通过chron任务重启,因此在自动重启后, Lucene索引的相对路径会发生变化 。 下一个增量索引在不同文件夹中创建新索引文件并保存更改。 当我向系统管理员询问索引文件时,他们给我第一个创建的大索引,我将对它们进行分析,但实际上,服务器使用不同的索引文件。 所以,答案是:需要指定Lucene索引

使用“npm发布”失败(Failure using “npm publish”)

@robertklep击中头部的钉子。 npm登录是关键,虽然我不记得以前必须这样做。 荣道先生! @robertklep Hit the nail on the head. npm login was the key, though I don't remember having to do that before. Kudos sir!

angular删除表中的一行(angular deleting a row in a table)

不确定第一个404 not found情况 HTTP://本地主机:3000 / API / delbike 它可能是服务器端问题或某些错误 但对于第二种情况: 当你使用它删除它时,它将是未定义的 $scope.bikes.splice(idx,1); 在将其发送给服务进行进一步处理之前 尝试在delete调用的解析器内写入上面的块 所以你在控制器内部的delbike方法将如下所示 $scope.delbike = function(idx){ bike

相关文章

更多

最新问答

更多
  • NumPy标量,广播和__iadd__方法(NumPy scalars, broadcasting and the __iadd__ method)
  • 快速排序算法输出错误(Getting wrong output for quicksort algorithm)
  • Rails管理员:没有Rails 4应用程序的编辑,显示或删除按钮(Rails Admin: No edit, show, or delete buttons for Rails 4 app)
  • 部分刷新问题触发两次(Issue with partial refresh triggered twice)
  • jsPlumb draggable element javascript函数(jsPlumb draggable element javascript function)
  • MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)
  • 如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)
  • 如何在tcl中将eth0配置为发送方udp端口(how to configure eth0 as a sender udp port in tcl)
  • EF6.1 beta 1如何获得Tooling Consolidation功能?(EF6.1 beta 1 how to get the Tooling Consolidation feature?)
  • 适用于Windows和PHP 5.5的Phalcon(Phalcon for Windows and PHP 5.5)
  • 有没有办法忽略hg责任中的提交?(Is there a way to ignore a commit in hg blame?)
  • Desire2通过API学习访问学期的权限(Desire2Learn Permissions to Access Semesters Via API)
  • 从aspx将服务器的文件复制到另一台服务器(Copy a file of a server to another server from aspx)
  • 使用YSlow / Web Developer扩展程序确定页面大小(Figuring out page size with YSlow / Web Developer extension)
  • Select语句将字符串中的前7个字符与其他表中的其他7个字符进行比较(Select statement which compares first 7 chars in a string with other 7 chars in other table)
  • 检测对注册表的更改,防止更改等(Detect changes to registry, prevent changes, etc)
  • 用户的鼠标/键盘运动分析是否有特殊名称?(Does the analysis of mouse/keyboard motions of a user have a special name?)
  • 获取Rails中资源的路由列表(Get list of routes for a resource in Rails)
  • 用函数值除以数字(Divide a function value by a number)
  • 熊猫Python:如何从今天开始创建失效列?(Pandas Python: How to create lapse since today column?)
  • GDK Bug报告(GDK Bug Reports)
  • 困惑于在python中循环遍历列表(confused about looping through lists in python)
  • 'less'由'which'输出指定的文件('less' the file specified by the output of 'which')
  • 如何在ASP.NET中优化AJAX(How to optimize AJAX in ASP.NET)
  • 在文本文件中转换纪元时间(Convert epoch times in text file)
  • 表细胞伸展(Table cell stretching)
  • GridView控件(GridView Control)
  • 从构建定义文件控制pdb文件输出(Control pdb file output from build defintion file)
  • *将方法传递给类(*Passing a Method into a Class)
  • 如何在HttpReceiveHttpRequest()中使用HTTPS?(How to use HTTPS with HttpReceiveHttpRequest()?)