Angularjs 如何重置$rootScope?
用户注销后,我需要清理$rootScope。我尝试了Angularjs 如何重置$rootScope?,angularjs,rootscope,angularjs-rootscope,Angularjs,Rootscope,Angularjs Rootscope,用户注销后,我需要清理$rootScope。我尝试了$rootScope.$destroy(),但没有成功。是否有方法循环遍历$rootScope中的所有值并将其删除,或者有方法简单地重置它?从rootScope中删除变量 delete $rootScope.variablename 实际上,$destroy()方法在$rootScope上不起作用(请参阅)。我通过调用$rootScope.$broadcast(“$destroy”)而不是$destroy()在我们的应用程序上删除整个Ang
$rootScope.$destroy()
,但没有成功。是否有方法循环遍历$rootScope中的所有值并将其删除,或者有方法简单地重置它?从rootScope中删除变量
delete $rootScope.variablename
- 实际上,
方法在$rootScope上不起作用(请参阅)。我通过调用$destroy()
而不是$rootScope.$broadcast(“$destroy”)
在我们的应用程序上删除整个Angular实例来解决这个问题。这样,所有析构函数的调用都是相同的$destroy()
- 至于$destroy元素事件,我必须承认,几天前我甚至都没有意识到……我在文档中的任何地方都没有看到它,而且我正在使用jQuery,所以根据我的说法,它对我来说无论如何都不起作用
RootScope
选择1
清除rootScope变量
$rootScope.currentStatus = ""; //or undefined
选择2
如果要删除整个$rootscope对象,
$rootScope=undefined //or empty
您可能希望在初始化时保留
$rootScope
附带的默认值。由于它们都以$
开头,因此可以删除所有不以$
开头的属性
for (var prop in $rootScope) {
if (prop.substring(0,1) !== '$') {
delete $rootScope[prop];
}
}
通过将其作为函数添加到$rootScope
上,可以使调用变得简单
$rootScope.$resetScope = function() {
...
}
从1.6开始,情况似乎不再如此