当前位置: 首页 > 面试题库 >

Angular JS:IE错误:达到10次$ digest()迭代。堕胎

邴俊友
2023-03-14
问题内容

我是Angular的新手,并且遇到了与IE相关的问题。

这是我得到的IE错误。

Webpage error details

User Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Timestamp: Thu, 13 Dec 2012 04:00:46 UTC


Message: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["fn: function $locationWatch() {\n      var oldUrl = $browser.url();\n\n      if (!changeCounter || oldUrl != $location.absUrl()) {\n\tchangeCounter++;\n\t$rootScope.$evalAsync(function() {\n\t  if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n\t      defaultPrevented) {\n\t    $location.$$parse(oldUrl);\n\t  } else {\n\t    $browser.url($location.absUrl(), $location.$$replace);\n\t    $location.$$replace = false;\n\t    afterLocationChange(oldUrl);\n\t  }\n\t});\n      }\n\n      return changeCounter;\n    }; newVal: 7; oldVal: 6"],["fn: function $locationWatch() {\n      var oldUrl = $browser.url();\n\n      if (!changeCounter || oldUrl != $location.absUrl()) {\n\tchangeCounter++;\n\t$rootScope.$evalAsync(function() {\n\t  if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n\t      defaultPrevented) {\n\t    $location.$$parse(oldUrl);\n\t  } else {\n\t    $browser.url($location.absUrl(), $location.$$replace);\n\t    $location.$$replace = false;\n\t    afterLocationChange(oldUrl);\n\t  }\n\t});\n      }\n\n      return changeCounter;\n    }; newVal: 8; oldVal: 7"],["fn: function $locationWatch() {\n      var oldUrl = $browser.url();\n\n      if (!changeCounter || oldUrl != $location.absUrl()) {\n\tchangeCounter++;\n\t$rootScope.$evalAsync(function() {\n\t  if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n\t      defaultPrevented) {\n\t    $location.$$parse(oldUrl);\n\t  } else {\n\t    $browser.url($location.absUrl(), $location.$$replace);\n\t    $location.$$replace = false;\n\t    afterLocationChange(oldUrl);\n\t  }\n\t});\n      }\n\n      return changeCounter;\n    }; newVal: 9; oldVal: 8"],["fn: function $locationWatch() {\n      var oldUrl = $browser.url();\n\n      if (!changeCounter || oldUrl != $location.absUrl()) {\n\tchangeCounter++;\n\t$rootScope.$evalAsync(function() {\n\t  if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n\t      defaultPrevented) {\n\t    $location.$$parse(oldUrl);\n\t  } else {\n\t    $browser.url($location.absUrl(), $location.$$replace);\n\t    $location.$$replace = false;\n\t    afterLocationChange(oldUrl);\n\t  }\n\t});\n      }\n\n      return changeCounter;\n    }; newVal: 10; oldVal: 9"],["fn: function $locationWatch() {\n      var oldUrl = $browser.url();\n\n      if (!changeCounter || oldUrl != $location.absUrl()) {\n\tchangeCounter++;\n\t$rootScope.$evalAsync(function() {\n\t  if ($rootScope.$broadcast('$locationChangeStart', $location.absUrl(), oldUrl).\n\t      defaultPrevented) {\n\t    $location.$$parse(oldUrl);\n\t  } else {\n\t    $browser.url($location.absUrl(), $location.$$replace);\n\t    $location.$$replace = false;\n\t    afterLocationChange(oldUrl);\n\t  }\n\t});\n      }\n\n      return changeCounter;\n    }; newVal: 11; oldVal: 10"]]
Line: 7859
Char: 6
Code: 0
URI: http://localhost:8080/__assets__/lib/angular/angular.js

在IE 8和IE 9之外的任何其他浏览器中都不会发生这种情况。

我有一只手表在看一个包含位置过滤器的内容过滤对象。

我对此的疑问是,为什么它不会在除IE之外的任何其他浏览器上发生,并且我应该怎么做才能消除它。提前致谢。


问题答案:

我有相同的问题,看起来却一样。Chrome \ FF工作正常,但IE失败。我单击了我应用程序中的某些链接,有时会收到此错误,有时却没有。

1)在我看来,我有几个看起来像这样的链接:

<a href="#" ng-click="addIP(ip)">Add some IP</a>

2)单击这些链接的处理程序,将新对象添加到IpRanges集合中,如下所示:

$scope.IpRanges.push(ip);

3)ng-repeat绑定了视图本身,并且我认为IE无法以某种方式很好地处理这种情况-
绑定,添加,应用事件的顺序可能不正确,否则…单击链接后,我在网址中添加了#号,有时它会闪烁,然后出现错误。所以我删除了href属性,一切正常:

<a href="" ng-click="addCurrentIP()">Add as allowed IP</a>

对于类似的情况,最好使用span或divs。



 类似资料:
  • 问题内容: 我正在尝试使用Angular创建Metro Tile类型的网格,以实现这一目标,我希望每个瓷砖都具有不同的颜色。因此,我的行动计划是创建一个函数,该函数将在循环内随机选择一种颜色(使用)。这是我到目前为止所拥有的… 如您所见,我正在使用名为RandomColourClass的函数设置类名称,这是JS位 这一切工作正常,并且图块具有不同的颜色,但我一直收到以下错误 错误:达到10个$ d

  • 问题内容: 达到10个$ digest()迭代。流产! 有很多支持文本,例如“在最近5个迭代中触发了Watchers:”等,但是其中很多文本是来自各种功能的Javascript代码。有诊断此问题的经验法则吗?是可以始终缓解的问题,还是应用程序足够复杂,因此应将其视为警告? 问题答案: 正如Ven所说,您或者在每个循环中返回不同(不相同)的对象,或者您将数据更改了太多次。 确定您的应用程序的哪个部分

  • 问题内容: 我有以下代码重复并显示用户名及其分数: 以及相应的角度控制器。 当我运行上面的代码时,我得到 错误:10 $ digest()迭代达到。 流产!我的控制台错误。 我已经为它创建了jsfiddle。 排序谓词仅在ng-repeat内部初始化,并且限制也应用于对象数。所以我觉得将sortby和limitTo监视者放在一起是错误的原因。 如果$ scope.reverse为false(分数的

  • 问题内容: 我从后端服务器接收数据,其结构如下: 以我的观点,我想“反转”列表。即,我想列出每个所有者,并为该所有者列出所有汉堡包。我可以通过在过滤器中使用underscorejs函数来实现此目的,然后将其与指令一起使用: JS: HTML: 这可以按预期工作,但是当使用错误消息“达到10个$ digest迭代次数”来呈现列表时,我得到了一个巨大的错误堆栈跟踪。我很难看到我的代码如何创建此消息暗示

  • 我有一个功能,刚刚被报道在internet explorer中不起作用。不知道它有多长时间不起作用了,但我想它从一开始就起作用了。我可以在IE11中验证它。 我的应用程序使用angularjs 1.3.17。 表单上有一个名为重置的按钮。当他们点击它时,它调用,如下所示: 它将recordID发布到API,API在后端执行大量操作。只要成功,它就会返回一个。 成功后,它会将空字符串写入locals

  • 说绝影刚进大学的时候就住了一次医院,那次从医院出来发生了两件大事:一、绝影决定追一个妹妹;二、土匪和王江开始做生意了。 他决定要追的那个妹妹名字叫肖潇,其实是他的初中同学,也是他的高中同学,也是他的大学同学。 进医院的第二天主任就把他调到VIP病房,他觉得真是太大面子了,因为他三叔也就是这医院一个小小牙科医生。 不过刚进去他就发现是自己太自以为是。普通病房有四张床,那VIP病房只有两张,其中一张床