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

前端之家收集整理的这篇文章主要介绍了如何在单个函数中清除所有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;
});

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

猜你在找的Angularjs相关文章