Ответ 1
Вы можете сделать следующее:
$rootScope = $rootScope.$new(true);
$scope = $scope.$new(true);
Функция $new
создает новую область видимости, наследующую переменные от родителя. true
предотвращает наследование.
Но это неправильный подход, потому что, если вы используете вышеприведенную вещь, вы должны вручную загрузить функции контроллеров и воссоздать дерево областей.
Это может быть полезно, хотя, когда идея состоит в том, чтобы хранить инициализированные данные, которые хранятся в некоторых переменных, а затем, когда они назначаются, копируются в отображаемые переменные.
Правильное решение - очистить вручную каждое свойство в каждой области события выхода из системы, например: Событие выхода из системы:
$rootScope.$broadcast("logout");
Поймать событие:
$rootScope.$on("logout", function(){
$rootScope.myData = undefined;
});
Или, как предлагается в комментариях, использовать сервис, а затем быть очищенным.