加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在单个函数中清除所有AngularJS $范围和$rootScope值?

发布时间:2020-12-17 09:28:39 所属栏目:安全 来源:单SPA与多个SPA应用/组件">上一
导读:我需要在执行一些操作时清除所有$scope值. 例如:如果我点击“注销”按钮重定向到“登录”页面,则会话中的所有$scope或$rootScope值都应该被清除. 我该如何实现? 您可以执行以下操作: $rootScope = $rootScope.$new(true);$scope = $scope.$new(true); 函
我需要在执行一些操作时清除所有$scope值.

例如:如果我点击“注销”按钮重定向到“登录”页面,则会话中的所有$scope或$rootScope值都应该被清除.

我该如何实现?

您可以执行以下操作:
$rootScope = $rootScope.$new(true);
$scope = $scope.$new(true);

函数$new正在创建一个继承父类变量的新作用域. true阻止继承.

但是这不是正确的方法,因为如果您使用上述内容,您应该手动引导控制器功能并重新创建示波器树.

This可能是有用的,其中的想法是存储初始化的数据存储在一些变量,然后,当分配复制到显示的变量.

正确的解决方案是在注销事件上手动清除每个范围内的每个属性,如下所示:
退出事件:

$rootScope.$emit("logout");

捕捉事件:

$rootScope.$on("logout",function(){
      $rootScope.myData = undefined;
});

或者根据意见中的建议,使用服务,然后清理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读