如何在我的应用程序退出时完全清除$ rootScope

时间:2016-06-10 04:53:01

标签: javascript angularjs node.js angularjs-directive

我在许多控制器和服务中使用了$ rootScope和$ scope。我已经为清除所有$ scope和$ rootScope值解决方案提供了许多堆栈溢出答案。但它对我不起作用(像$ rootScope = undefined或$ rootScope这样的解决方案) = '')。请帮助我摆脱它。My Logout Code

3 个答案:

答案 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