AngularJS $ destroy()方法不起作用

时间:2014-09-16 06:06:16

标签: angularjs destroy

我试图破坏控制器中的范围,但是在破坏范围后它可以访问,为什么?

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和timing有关吗?

1 个答案:

答案 0 :(得分:2)

$ destroy有两件事:

  • 在该范围内播放$ destroy
  • 从父母和兄弟姐妹的链接列表中删除自己(没有更改其子项,它们只是用于垃圾回收)

所以你可以说它确实是一个时间问题。你的范围将被销毁,但你不知道什么时候它会被垃圾收集。您所知道的是,不再可以从父范围访问范围,并且所有意图和目的都应被视为“死”。