2014-07-07 15 views
23

Tôi có một ứng dụng AngularJs. Tôi sử dụng Bộ điều khiển cho một số phạm vi con. Trong mọi Controller tôi có thể thiết lập một số biến thuộc về Child Scope tương ứng. Khi AngularJ khởi tạo một bộ điều khiển, có một hàm tạo, trong đó tôi có thể đặt một giá trị mặc định cho các biến phạm vi con của tôi.Angularjs Controller destructor

Tôi có bộ điều khiển "destructor" không? Làm thế nào để tôi biết khi nào một bộ điều khiển đóng và phạm vi đang được làm sạch (bị phá hủy bởi hàm hủy $)?

Cảm ơn!

Trả lời

45

Bạn phải lắng nghe những $destroykiện, ví dụ:

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

tài liệu liên quan: https://docs.angularjs.org/api/ng/type/$rootScope.Scope

+0

Nó được phát ra bởi các '$ scope', vì vậy có bất cứ nơi nào bạn có thể truy cập ' $ scope', bạn có thể nghe nó. Về cơ bản, '$ scope' bị hủy và phát ra sự kiện này; bộ điều khiển bị phá hủy như một hệ quả của điều đó, do đó, nó là hơi gián tiếp, nhưng vẫn ổn định. –