如何在单个函数中清除所有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; }); 或者根据意见中的建议,使用服务,然后清理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |