2013-07-10 53 views
1

我的工作我的第一個角的應用程序和正在以下錯誤:

Uncaught Error: 10 $digest() iterations reached. Aborting!

我想我已經分離出的源我使用隨機的()功能。從我讀到的這個錯誤(https://github.com/angular/angular.js/issues/705)看來,這似乎是有意義的。但是,我不知道如何避免這個錯誤。

我重新錯誤這個簡單的代碼:

randtest.js:

function FirstCtrl($scope) { 
     $scope.randNum= function(){ 
     var rando = Math.floor(Math.random()*100); 
     return rando; 
     };  
    } 

的index.html

<!doctype html> 
<html ng-app> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script> 
    <script src="randtest.js"></script> 
    </head> 
    <body> 
    <div ng-controller="FirstCtrl"> 
     <h1>{{randNum()}}</h1> 
    </div> 
    </body> 
</html> 

回答

1

不要直接設置$範圍屬性功能。讓scope屬性引用該函數的結果:

var r = function(){ 
    var rando = Math.floor(Math.random()*100); 
    return rando; 
    }; 
$scope.randomNum =r(); 

HTML:

<h1>{{randomNum}}</h1> 

Plunk here

更新 - 不換計算的功能似乎也避免了錯誤:

$scope.randomNum = Math.floor(Math.random()*100); 

錯誤發生的原因超出了我的範圍...

0

當您通過屬性創建變更循環時,通常會出現您提到的錯誤。

例如,當您觀察特定屬性的更改並更改偵聽器上該屬性的值時。 確保你的代碼沒有這種情況。