【问题标题】:AngularJS $destroy() method don't worksAngularJS $destroy() 方法不起作用
【发布时间】:2014-09-16 06:06:15
【问题描述】:

我试图销毁控制器中的作用域,但是在销毁作用域后它可以访问,为什么?

myApp.controller('modalCtrl', ['$scope', function($scope){

    $scope.test = 'ha ha ha';
    console.log($scope.test);  // it laughs
    $scope.$destroy();
    console.log($scope.test);  // it laughs again :/

}]);

它与$digest和时间有关吗?

【问题讨论】:

    标签: angularjs destroy


    【解决方案1】:

    $destroy 做了两件事:

    • 在该范围内广播 $destroy
    • 将自身从其父级和兄弟级的链表中删除(不更改其子级,它们仅用于垃圾回收)

    所以你可以说这确实是一个时间问题。您的作用域将被销毁,但您不会确切知道它何时会被垃圾收集。您所知道的是,该范围不再可从父范围访问,并且出于所有意图和目的,应将其视为“死”。

    【讨论】:

    • @MajoB 有人删除了他的评论,他是。
    • @user3786285 $scope.$destroy()
    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多