0

我分析我的應用程序AngularJs的代碼,試圖最大限度地提高性能,我把這個代碼在我的控制器

$scope.$on("$destroy",() -> 
    console.log "DESTROY SCOPE OF CONTROLLER BEFORE EXIT" 
    console.log window.performance.memory 
    $scope.$destroy() 
    console.log window.performance.memory 
) 

所以

$scope.$destroy() 

應該清楚我的控制器及其子女的範圍。 問題是,當我離開控制器並激活事件$ destroy時,在控制檯中我看到日誌在循環中。爲什麼?

enter image description here

謝謝大家

+1

銷燬事件是在範圍被銷燬時發出的。並且你在事件監聽器中銷燬作用域。因此,它會發出一個銷燬事件,它會調用偵聽器,從而破壞範圍,發出事件等。 –

回答

1

你可以找到關於scope life cycle文檔中的答案的一部分。

在你的情況下,你正在調用監聽器中的$ destroy事件。所以你正在做一個$ destroy事件的遞歸調用。

+0

@YoBre我的回答是否幫助您解決問題? – Freezystem