Gni*_*nik 10 angularjs angular-ui angularjs-scope angular-ui-router
我需要$scope在执行某些操作时清除所有值.
例如:如果我单击"Signout"按钮重定向到"signin"页面,则应清除会话中的所有$ scope或$ rootScope值.
我怎样才能做到这一点?
Mic*_*ael 16
您可以执行以下操作:
$rootScope = $rootScope.$new(true);
$scope = $scope.$new(true);
Run Code Online (Sandbox Code Playgroud)
该函数$new正在创建一个继承父项变量的新范围.true阻止继承.
但这不是正确的方法,因为如果你使用上面的东西,你应该手动引导控制器功能并重新创建范围树.
这可能是有用的,其中的想法是存储初始化的数据存储在一些变量中,然后,当分配复制到显示的变量时.
正确的解决方案是手动清除注销事件中每个范围内的每个属性,如下所示:注销事件:
$rootScope.$broadcast("logout");
Run Code Online (Sandbox Code Playgroud)
抓住活动:
$rootScope.$on("logout", function(){
$rootScope.myData = undefined;
});
Run Code Online (Sandbox Code Playgroud)
或者如评论中所建议的那样,使用服务然后进行清理.
| 归档时间: |
|
| 查看次数: |
28733 次 |
| 最近记录: |