我试图在我的 View 中输出一个随机数,但不断收到以下消息:
错误:[$rootScope:infdig] 已达到 10 次 $digest() 迭代。正在中止!
这似乎是摘要流出问题,但我不知道如何解决?这是我到目前为止的代码:
HTML
<p>{{getRandomNumber(2, 12)}} providers nearby</p>
controller.js
.controller('ServicesCtrl', function($scope, ServicesData, $stateParams) {
$scope.getRandomNumber = function(min, max){
return Math.floor(Math.random() * (max - min) + min);
}
});
最佳答案
大括号{{ }}
创建一个$watch。 Angular 将 $watch 表达式并继续尝试(最多 10 次),直到获得稳定值。由于您返回的是随机数,因此它永远不会稳定。
这是一个解决方法。使用 ngInit 将随机结果分配给变量,并在表达式中使用该稳定值。
<p ng-init="foo=getRandomNumber()">{{foo}} providers nearby</p>
根据“附近的提供商”文本判断,我认为您遇到的问题不会成为最终代码的问题,并且您不需要该解决方法(因为您不太可能拥有不同数量的提供商)提供者处于 $digest 周期的中间)。
关于javascript - 解决 AngularJS 上的摘要溢出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213719/