0

я анализирую код моего приложения AngularJs попробовать Максимизация производительности и я ставлю этот код в мой контроллер

$scope.$on("$destroy",() -> 
    console.log "DESTROY SCOPE OF CONTROLLER BEFORE EXIT" 
    console.log window.performance.memory 
    $scope.$destroy() 
    console.log window.performance.memory 
) 

Так

$scope.$destroy() 

должен очистить сферу моего контроллера и его детей. Проблема в том, что когда я оставляю контроллер и активирует событие $ destroy, в консоли я вижу, что журналы находятся в цикле. Зачем?

enter image description here

Спасибо всем

+1

Событие destroy уничтожается, когда область действия уничтожается. И вы уничтожаете область действия в прослушивателе событий. Таким образом, выдает событие destroy, которое вызывает слушателя, который разрушает область, которая испускает событие, и т. Д. –

ответ

1

Вы можете найти часть ответа в документации, касающейся scope life cycle.

В вашем случае вы вызываете событие $ destroy в слушателе. Итак, вы делаете рекурсивный вызов события $ destroy.

+0

@YoBre мой ответ помог вам решить вашу проблему? – Freezystem

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