首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重置$rootScope?

如何重置$rootScope?
EN

Stack Overflow用户
提问于 2015-06-18 12:51:28
回答 3查看 11.2K关注 0票数 8

用户注销后,我需要清理我的$rootScope。我尝试过$rootScope.$destroy(),但这并不管用。有没有一种方法可以遍历$rootScope中的所有值并删除它们,或者是一种简单地重置它的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-18 13:08:45

您可能希望在初始化$rootScope时保留其附带的默认值。因为它们都以$开头,所以您可以删除所有不以$开头的属性。

代码语言:javascript
复制
for (var prop in $rootScope) {
    if (prop.substring(0,1) !== '$') {
        delete $rootScope[prop];
    }
}

您可以通过将其添加为$rootScope上的函数来简化调用。

代码语言:javascript
复制
$rootScope.$resetScope = function() {
    ...
}
票数 9
EN

Stack Overflow用户

发布于 2015-06-18 12:56:01

  • 实际上,$destroy()方法不能在$rootScope上工作(参见here)。我已经解决了这个问题,在删除应用程序上的整个Angular实例时,我调用了$rootScope.$broadcast("$destroy")而不是.$destroy()。这样,所有析构函数都以相同的方式调用。

  • 至于element $destroy事件,我必须承认,就在几天前我还没有意识到这一点…我在文档中没有看到过它,而且我正在使用jQuery,所以根据here的说法,它无论如何都不会对我起作用。

来自here的引用

这是一个很长的描述,但是您可以使用下面的方法手动清除RootScope

选项1

清除rootScope变量

代码语言:javascript
复制
$rootScope.currentStatus = ""; //or undefined 

选项2

如果要删除整个$rootscope对象,则返回

代码语言:javascript
复制
 $rootScope=undefined //or empty 
票数 4
EN

Stack Overflow用户

发布于 2015-06-18 12:54:39

从rootScope中删除变量

代码语言:javascript
复制
delete $rootScope.variablename
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30906669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档