如何重现" 10 $ digest()迭代。中止" Jasmine中的错误

时间:2015-05-05 18:19:12

标签: angularjs jasmine karma-runner

有一些关于如何解决错误消息的问题:

  

达到10 $ digest()次迭代。中止,

例如this one。我知道如何解决这个问题 - 您更改了代码,因此在$scope期间不会更改digest

我想做的事情,并且不了解该怎么做,将此错误重现为Karma / Jasmine测试的一部分。根据我收集的内容,您需要manually force a digest来获取摘要更新,这对我来说非常适合强制初步摘要(以解决承诺),但我没有看到它强制最终错误的$digest循环。

1 个答案:

答案 0 :(得分: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