2014-09-16 4 views
1

Я попытался уничтожить область действия в контроллере, но после разрушения области она доступна, почему?

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?

ответ

2

$ уничтожить делает две вещи:

  • Broadcast $ разрушающие на этой сферы
  • Удалить себя от своего родителя и связанные списки братьев и сестер (без изменения своих детей, они просто оставили для сбора мусора)

Таким образом, вы можете сказать, что это действительно вопрос времени. Ваша область действия будет уничтожена, но вы точно не узнаете, когда будет собран мусор. То, что вы знаете, состоит в том, что область действия больше не доступна из родительских областей и для всех целей и целей должна считаться «мертвой».

+0

+1 но почему вы получаете -1, если вы правы? –

+0

@MajoB Кто-то снял свой комментарий, Он был. –

+0

как вы запускаете его вручную? – Martian2049

Смежные вопросы