2015-05-05 3 views
3

Там было несколько вопросов задают о том, как решить сообщение об ошибке:

10 $ дайджеста() итераций достигли. Aborting,

например this one. Я понимаю, как это исправить - вы меняете свой код, чтобы он не менял $scope во время digest.

То, что я хотел бы сделать, и не понимаю, как это сделать, воспроизводит эту ошибку как часть теста Karma/Jasmine. Из того, что я собрал, вам нужно manually force a digest, чтобы, как правило, получать обновления дайджеста, и это работает для меня с точки зрения принудительного первоначального дайджеста (для решения обещаний), но я не вижу, чтобы он заставлял цикл $digest, ,

+2

Там не хватает вопросов о том, как вызвать ошибку, слишком много о том, как сделать его уйти, не понимая его. _ Чтобы достичь просветления, вы должны сначала понять, как свалить. – BanksySan

ответ

1

Эта ошибка возникает, когда функция возвращает различное значение при каждом вызове.

Пример

$scope.getValue = function() { 
    return Math.Random() 
} 
<div>{{ getValue() }}</div> 

Запуск выше код будет генерировать ошибку, как она возвращает другое значение каждый раз.

Другой пример

$scope.getObjects = function() { 
    return [object1, object2]; 
} 
<div ng-repeat="object in getObjects"></div> 

Во втором примере мы создаем новый массив каждый раз, что вызывает ошибку.

Ссылка: https://docs.angularjs.org/error/ $ rootScope/infdig

+0

Я ценю, что вы тратите время, но это не отвечает на вопрос. Как я уже сказал, я знаю, как это исправить, вопрос заключается в том, как воспроизводить в карме/жасмине. –

Смежные вопросы