解决AngularJS

时间:2016-02-04 23:31:26

标签: javascript angularjs

我想在我的视图中输出一个随机数,但不断收到以下消息:

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);
  }
});

1 个答案:

答案 0 :(得分:3)

花括号{{ }}创建$ watch。 Angular将观察表达式并继续尝试(最多10次),直到获得稳定值。由于您返回的是随机数,因此永远不会稳定。

这是一种解决方法。使用ngInit将随机结果分配给变量,并在表达式中使用该稳定值。

<p ng-init="foo=getRandomNumber()">{{foo}} providers nearby</p>

根据“附近的提供商”文字判断,我认为您遇到的问题不会成为您最终代码的问题,您也不需要这种解决方法(因为您不太可能有不同的数量) $摘要周期中的提供者。)