Angular JS: c'est à dire d'Erreur: 10 $digest() itérations atteint. L'abandon de
Je suis nouveau sur Angulaire et je suis coincé avec un problème concernant IE.
Ici est la IE Erreur que j'obtiens.
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
Ce n'est pas le cas dans n'importe quel autre navigateur, mais IE 8 et IE 9.
J'ai une montre à la recherche à un filtrage de contenu de l'objet qui comprend un filtre de localisation.
Ma question c'est pourquoi ne pas se produire sur n'importe quel autre navigateur, mais IE et que dois-je faire pour se débarrasser de ce. Merci à l'avance.
- Avez-vous déjà figure que l'on sort?
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème avec l'erreur qui a regardé la même chose. Chrome\FF a bien fonctionné, mais IE a échoué. J'ai cliqué sur quelques liens dans mon application et parfois eu cette erreur, et parfois pas.
1) a mon avis, j'ai eu quelques liens qui ressemblait à ceci:
2) Cliquez sur gestionnaire pour ces liens ajouté de nouveaux objets dans IpRanges collection comme ceci:
3) de la Collection elle-même a été appliqué sur vue par ng-repeat, et j'ai pensé que quelque part, c'est à dire pourrait ne pas gérer cette situation de bien - probablement de l'ordre de la liaison\ajout\appliquant des événements n'était pas incorrect ou autre... Aussi après avoir cliqué sur les liens que j'avais symbole # ajouté à l'url, et parfois il cligna des yeux, et puis j'ai un message d'erreur. J'ai donc enlevé attribut href et tout a bien fonctionné:
Probablement, il est préférable d'utiliser les travées ou divs pour des situations similaires.
Tiago Roldão est vraiment le droit. J'ai eu exactement la même question. Après debug, j'ai réalisé que dans mon code j'ai
qui provoque l'infiniment boucle problème. Après quelques recherches, j'ai trouvé ce
qui résout mon problème parfaitement.
J'ai eu le même problème en utilisant AngularJS v1.2.13 dans IE9, IE10, lors de l'appel de $de la fenêtre.l'histoire.back() (surtout dans Windows Phone).
Il semble que la cause est que $fenêtre.l'histoire.back() dans IE changements href juste avant le $locationWatch() est déclenché par conséquent oldUrl contiendra la nouvelle Url et qui jette hors du angulaire dans une infinité de $digest.
Le travail immédiat est de remplacer les appels à $fenêtre.l'histoire.back() avec les éléments suivants:
Je peux dire à partir de votre rapport d'erreur vous avez $de regarder pour un changeCounter variable, et cet observateur de la fonction:
Et la changeCounter obtient une valeur incrémentée si $navigateur.url() n'est pas égal à $lieu.absUrl(). Comme l' $fonction de veille ne peut faire 10 boucles de changement/réaction, il se tromper, après ces 10 itérations. Comme vous le modifiez la valeur que vous regardez, il finit par éclater.
Je voudrais enregistrer les valeurs $lieu.absUrl() et $navigateur.url(), et de voir pourquoi le match dans les autres navigateurs, mais pas sous ie.
J'ai été confronté à problème dans internet explorer 10.
J'ai été en utilisant
pour la modification de l'itinéraire.
Remplacer avec
ci-dessous le code
résolu le problème
TLDR
Si vous utilisez
ui-router
alors vous pouvez aussi utiliserFond
J'ai été en utilisant la fonction suivante pour passer d'une vue de liste pour une vue détaillée, de sorte que vous pouvez cliquer sur n'importe quoi avec
ng-click="details(item)"
, dans mon castr
's dans la liste:Mais j'ai fait le redouté
10 $digest() iterations reached
dans IE.FYI
J'ai placé un point d'arrêt dans AngularJS v1.2.0rc1 angular.js ligne 7650 la suite de Tiago réponse.
Résultats
De sortie à partir de Chrome
oldUrl
(c'est à dire$browser.url()
sur les rapports de l'ancienne url (c'est à dire la liste)$location.absUrl()
était de rendre compte des détails de l'url.Sortie d'IE7,8
oldUrl
(c'est à dire$browser.url()
sur les rapports de la nouvelle url (c'est à dire les détails, on)$location.absUrl()
était encore de déclarer la liste des url.J'ai eu ce problème lorsque vous essayez de rediriger vers une autre page que
résolu en changeant de: