2014-07-07 81 views
23

我有一個AngularJs應用程序。我爲一些子範圍使用控制器。在每個控制器中,我可以設置許多屬於相應子範圍的變量。當AngularJs實例化一個控制器時,有一個構造函數可以爲我的子範圍變量設置一個默認值。Angularjs控制器析構函數

我有控制器「析構函數」嗎?如何知道控制器何時關閉以及作用域是否正在清理(由$ destroy函數銷燬)?

謝謝!

回答

45

你必須聽$destroy事件,如:

function MyController($scope, ...) { 
    ... 
    $scope.$on("$destroy", function handler() { 
     // destruction code here 
    }); 
} 

相關的文檔:https://docs.angularjs.org/api/ng/type/$rootScope.Scope

+0

這是由'$ scope'發出的,所以是無論你有機會獲得' $ scope',你可以聽它。本質上'$ scope'被銷燬並且發出這個事件;控制器因此而遭到破壞,因此它有些間接但穩定。 –