用户注销后,我需要清理我的$rootScope。我尝试过$rootScope.$destroy(),但这并不管用。有没有一种方法可以遍历$rootScope中的所有值并删除它们,或者是一种简单地重置它的方法?
发布于 2015-06-18 13:08:45
您可能希望在初始化$rootScope时保留其附带的默认值。因为它们都以$开头,所以您可以删除所有不以$开头的属性。
for (var prop in $rootScope) {
if (prop.substring(0,1) !== '$') {
delete $rootScope[prop];
}
}您可以通过将其添加为$rootScope上的函数来简化调用。
$rootScope.$resetScope = function() {
...
}发布于 2015-06-18 12:56:01
$destroy()方法不能在$rootScope上工作(参见here)。我已经解决了这个问题,在删除应用程序上的整个Angular实例时,我调用了$rootScope.$broadcast("$destroy")而不是.$destroy()。这样,所有析构函数都以相同的方式调用。来自here的引用
这是一个很长的描述,但是您可以使用下面的方法手动清除RootScope
选项1
清除rootScope变量
$rootScope.currentStatus = ""; //or undefined 选项2
如果要删除整个$rootscope对象,则返回
$rootScope=undefined //or empty 发布于 2015-06-18 12:54:39
从rootScope中删除变量
delete $rootScope.variablenamehttps://stackoverflow.com/questions/30906669
复制相似问题