У меня есть одностраничное приложение, над которым я работаю с несколькими сотрудниками больше года. Это приложение angular, которое использует angular -ui-router для перемещения между страницами. Иногда при первом посещении страницы настроек генерируется следующее исключение:
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)
Я понимаю [$ rootScope: infdig] в нормальном случае, но тот факт, что массив наблюдателей пуст, очень смущает меня. Кроме того, было очень сложно отлаживать, потому что это случается только иногда. Используя инспектор, я смог определить, что завершающийся запрос - это загрузка файла настроек HTML. Удаление различных контроллеров со страницы настроек не облегчает проблему, похоже, происходит даже при загрузке немой "оболочки" версии страницы настроек с загруженными только обычными загружаемыми виджетами.
Как я могу узнать, что вызывает это пустое исключение infdig? Как я могу предотвратить это?