微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我需要在执行一些操作时清除所有$scope值.

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

我该如何实现?

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

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

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

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

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

$rootScope.$emit("logout");

捕捉事件:

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

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

原文地址:https://www.jb51.cc/angularjs/140517.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐