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

【字号: 日期:2024-02-05浏览:26作者:雯心
如何解决Angular JS:IE错误:达到10次$ digest()迭代。堕胎?

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

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

<a href='https://www.6hehe.com/wenda/21110.html#' ng-click='addIP(ip)'>Add some IP</a>

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

$scope.IpRanges.push(ip);

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

<a href='https://www.6hehe.com/wenda/21110.html' ng-click='addCurrentIP()'>Add as allowed IP</a>

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

解决方法

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

这是我得到的IE错误。

Webpage error detailsUser Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Timestamp: Thu,13 Dec 2012 04:00:46 UTCMessage: 10 $digest() iterations reached. Aborting!Watchers fired in the last 5 iterations: [['fn: function $locationWatch() {n var oldUrl = $browser.url();nn if (!changeCounter || oldUrl != $location.absUrl()) {ntchangeCounter++;nt$rootScope.$evalAsync(function() {nt if ($rootScope.$broadcast(’$locationChangeStart’,$location.absUrl(),oldUrl).nt defaultPrevented) {nt $location.$$parse(oldUrl);nt } else {nt $browser.url($location.absUrl(),$location.$$replace);nt $location.$$replace = false;nt afterLocationChange(oldUrl);nt }nt});n }nn return changeCounter;n }; newVal: 7; oldVal: 6'],['fn: function $locationWatch() {n var oldUrl = $browser.url();nn if (!changeCounter || oldUrl != $location.absUrl()) {ntchangeCounter++;nt$rootScope.$evalAsync(function() {nt if ($rootScope.$broadcast(’$locationChangeStart’,$location.$$replace);nt $location.$$replace = false;nt afterLocationChange(oldUrl);nt }nt});n }nn return changeCounter;n }; newVal: 8; oldVal: 7'],$location.$$replace);nt $location.$$replace = false;nt afterLocationChange(oldUrl);nt }nt});n }nn return changeCounter;n }; newVal: 9; oldVal: 8'],$location.$$replace);nt $location.$$replace = false;nt afterLocationChange(oldUrl);nt }nt});n }nn return changeCounter;n }; newVal: 10; oldVal: 9'],$location.$$replace);nt $location.$$replace = false;nt afterLocationChange(oldUrl);nt }nt});n }nn return changeCounter;n }; newVal: 11; oldVal: 10']]Line: 7859Char: 6Code: 0URI: http://localhost:8080/__assets__/lib/angular/angular.js

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

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

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

相关文章: