我在许多控制器和服务中使用了$ rootScope和$ scope。我已经为清除所有$ scope和$ rootScope值解决方案提供了许多堆栈溢出答案。但它对我不起作用(像$ rootScope = undefined或$ rootScope这样的解决方案) = '')。请帮助我摆脱它。
答案 0 :(得分:3)
您应该从$roorScope
删除您的媒体资源。它应该是:
delete $rootScope.yourProperty1;
delete $rootScope.yourProperty2;
如果有许多属性,则应使用:
for (var prop in $rootScope) {
// Check is not $rootScope default properties, functions
if (typeof $rootScope[prop] !== 'function' && prop.indexOf('$') == -1 && prop.indexOf('$$') == -1) {
delete $rootScope[prop];
}
}
答案 1 :(得分:1)
您可以执行以下操作
$rootScope.$on("logout", function(){
$rootScope.userRole= undefined;});
答案 2 :(得分:1)
如果您希望清除$ rootScope上的所有已定义属性并希望保留$ rootScope附带的初始值,则可以通过删除$ rootScope上不以$开头的所有属性来执行此操作。因为所有初始属性都是用$。定义的。
$rootScope.$clearScope = function() {
for (var prop in $rootScope) {
if (prop.substring(0,1) !== '$') {
delete $rootScope[prop];
}
}
}
另外,请查看此post。