2015-02-05 12 views
1

從文檔的角度約$digest

最簡單的方法,我們知道,無限循環可能會發生,但是,我還沒有遇到這樣的在我的項目中是個例外,所以請給出一個最簡單的演示來展示這個異常如何處理?

回答

1

它應該很簡單。

使用一個NG綁定調用一個方法

<div ng-bind="someFunc()"></div> 

和在控制器做:

$scope.someFunc= function(){ 
    return []; /*return a New instance*/ 
} 

所以ng-bind運行每消化週期,並以ng綁定的這種情況下表達式是一個函數調用,它在第一個摘要循環期間被評估,並且每次都從該函數返回一個新的對象。它導致一個新的摘要循環再次發生,以穩定DOM,並重新評估新對象和ng-bind表達式。這個(穩定)繼續,直到達到角度設置的最大誤差極限10。

angular.module('app', []).controller('ctrl', function($scope) { 
 
    $scope.callMe = function() { 
 
    return []; 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <div ng-bind="callMe()"></div> 
 
    Nothing Here check the console 
 
</div>

+0

一個微妙的演示,THX,這確實幫了我很多! – yqfang

+0

@yqfang謝謝!!事實上,我記得** [這個答案](http://stackoverflow.com/questions/28332674/calling-function-inside-angularjs-goes-in-endless-loop/28332711#28332711)**是有點類似OP有無限的摘要問題。看看我的解釋是否有幫助。乾杯! – PSL