angular.js:14700错误:[$ rootScope:infdig] 10 $ digest()迭代达成。中止

时间:2018-06-12 08:21:53

标签: angularjs

<div class="bottom-right bottom-timer time botton10">
  <div class="work-clock" ng-bind="workCntrl.getClockString(work)">
  </div>
</div>

getClockString(work)会出错:

  

[$ rootScope:infdig] 10 $ digest()迭代达成。中止!   观察者在最近5次迭代中被解雇:[[{&#34; msg&#34;:&#34; workCntrl.getClockString(work)&#34;,&#34; newVal&#34;:&#34; 132: 0:15:6&#34;&#34; OLDVAL&#34;:&#34; 132:0:15:5&#34;},

1 个答案:

答案 0 :(得分:0)

如果您的getClockString方法返回一个字符串值,则在angular $interval服务中调用它。将模板代码更新为:

<div class="bottom-right bottom-timer time botton10">
  <div class="work-clock" ng-init="workCntrl.getClockStringEverySecond(work)" 
     ng-bind="workCntrl.clockString">
  </div>
</div>

在控制器中将您的代码更新为:

workCntrl.getClockStringEverySecond = function(work) {
    $interval(function () {
        workCntrl.clockString= workCntrl.getClockString(work);
    }, 1000);
}

这里,clockString是一个范围变量,它将通过从getClockString方法获取值每秒更新一次。这样你就不会遇到上述问题。

<强> Generic Example