【问题标题】:Angularjs Controller destructorAngularjs 控制器析构函数
【发布时间】:2014-07-07 09:22:02
【问题描述】:

我有一个 AngularJs 应用程序。我将控制器用于某些子范围。在每个控制器中,我可以设置一些属于相应子作用域的变量。当 AngularJs 实例化一个控制器时,有一个构造函数,我可以在其中为我的子范围变量设置默认值。

我有控制器“析构函数”吗?我如何知道控制器何时关闭并且范围正在清理(被 $destroy 函数销毁)?

谢谢!

【问题讨论】:

    标签: angularjs angularjs-scope


    【解决方案1】:

    你必须收听$destroy事件,例如:

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

    相关文档:https://docs.angularjs.org/api/ng/type/$rootScope.Scope

    【讨论】:

    • 它是由$scope 发出的,所以是的,无论您在哪里可以访问$scope,都可以收听它。本质上,$scope 被销毁并发出此事件;控制器因此而被破坏,因此它有点间接,但仍然稳定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多