angular 当 ui-router 改变状态时控制器作用域不破坏变量
angular controller scope not destroying variables when ui-router changes state
在我的应用程序中,我注意到当我更改状态时,$scope 变量仍然存在并超时登录。为什么是这样?我怎样才能完全删除它而不占用堆内存?
意思是,控制器状态改变后
$scope.$on("$destroy",function(){
setTimeout(function(){
console.log($scope.whatever);
},10000);
});
$scope.whatever 仍然记录意味着它从未被删除!到底是怎么回事?我以为破坏事件也会破坏范围内的所有东西?
原因是,由于 console.logging 超时中的 $scope 变量,我正在引用它所以 java 脚本将避免范围内的垃圾收集,直到它执行并且不再是引用,javascript 中没有像 java.
中那样的弱引用
应该不惜一切代价避免这种情况,因为它会在 angular 中造成大量内存泄漏!确保在销毁范围时没有在任何地方引用变量!
在我的应用程序中,我注意到当我更改状态时,$scope 变量仍然存在并超时登录。为什么是这样?我怎样才能完全删除它而不占用堆内存?
意思是,控制器状态改变后
$scope.$on("$destroy",function(){
setTimeout(function(){
console.log($scope.whatever);
},10000);
});
$scope.whatever 仍然记录意味着它从未被删除!到底是怎么回事?我以为破坏事件也会破坏范围内的所有东西?
原因是,由于 console.logging 超时中的 $scope 变量,我正在引用它所以 java 脚本将避免范围内的垃圾收集,直到它执行并且不再是引用,javascript 中没有像 java.
中那样的弱引用应该不惜一切代价避免这种情况,因为它会在 angular 中造成大量内存泄漏!确保在销毁范围时没有在任何地方引用变量!