我想在我的视图中输出一个随机数,但不断收到以下消息:
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
这似乎是一个摘要流出问题,但我不确定如何解决它?到目前为止,这是我的代码:
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);
}
});
答案 0 :(得分:3)
花括号{{ }}
创建$ watch。 Angular将观察表达式并继续尝试(最多10次),直到获得稳定值。由于您返回的是随机数,因此永远不会稳定。
这是一种解决方法。使用ngInit
将随机结果分配给变量,并在表达式中使用该稳定值。
<p ng-init="foo=getRandomNumber()">{{foo}} providers nearby</p>
根据“附近的提供商”文字判断,我认为您遇到的问题不会成为您最终代码的问题,您也不需要这种解决方法(因为您不太可能有不同的数量) $摘要周期中的提供者。)