2015-05-04 12 views
11

Ich habe eine einzelne Seite App, an der ich mit mehreren Mitarbeitern seit über einem Jahr gearbeitet habe. Es ist eine eckige App, die eckigen UI-Router verwendet, um zwischen den Seiten zu wechseln. Manchmal, wenn die Einstellungsseite zum ersten Mal besucht, wird die folgende Ausnahme ausgelöst:Wie kann ich infdig mit leerem Array in einer einzelnen Seite eckige App debuggen?

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! 
Watchers fired in the last 5 iterations: [] 
http://errors.angularjs.org/1.3.3/$rootScope/infdig?p0=10&p1=%5B%5D 
    at REGEX_STRING_REGEXP (angular.js:63) 
    at Scope.$get.Scope.$digest (angular.js:14084) 
    at Scope.$get.Scope.$apply (angular.js:14308) 
    at done (angular.js:9532) 
    at completeRequest (angular.js:9717) 
    at XMLHttpRequest.requestLoaded (angular.js:9660) 

I [$ rootScope: infdig] verstehe im Normalfall, aber die Tatsache, dass die Beobachter Array leer ist sehr verwirrend mir. Außerdem war es sehr schwierig zu debuggen, weil es nur gelegentlich passiert. Mithilfe des Inspektors konnte ich feststellen, dass die Anforderung, die abgeschlossen wird, das Laden der HTML-Datei mit den Einstellungen ist. Das Entfernen von verschiedenen Controllern von der Einstellungsseite behebt das Problem nicht, es scheint sogar zu passieren, wenn eine dumme "Shell" -Version der Einstellungsseite geladen wird, auf der nur allgemeine Widgets geladen sind.

Wie kann ich herausfinden, was diese leere infdig Ausnahme verursacht? Wie kann ich das verhindern?

+0

Ihr etwas Code ist modifieng der Bereich .. & geht auf Endlosschleife .. –

+0

Dies passiert auch, wenn die Einstellungen Controller nichts tut, obwohl. – Chris

+0

könnten Sie eine Plunkr/Geige der gleichen Sache erstellen .. –

Antwort

1

Ich würde dies in einen Kommentar setzen, aber ich habe noch nicht genug Ruf.

Ich hatte dieses Problem mit ui-Router zuvor. Das Problem in meinem Fall war Autorisierungslogik innerhalb von , die es in eine Endlosschleife trat. Was ich getan habe, um mein Problem zu lösen, wurde in Chrome in allen Codebereichen in meinem Modul.run/config, wo es mit $state.go umgeleitet wurde, Haltepunkte gesetzt. Ich war in der Lage, durch die Logik zu gehen und zu sehen, wo die Endlosschleife begann.

+0

Guter Ruf, unser Problem scheint irgendwie mit der Authentifizierung zusammen zu hängen. Es passiert nur, wenn die App zum ersten Mal geladen wird. – Chris

+0

Können Sie etwas von Ihrem Code veröffentlichen? – DerekMT12

+1

Leider kann ich nicht, es ist Teil einer größeren, proprietären Anwendung. Wenn ich die Quelle des Problems jedoch tatsächlich finden kann, würde ich hoffen, es in einer einfacheren App reproduzieren zu können. – Chris

Verwandte Themen