我一直在查看的基于 Angular 的应用程序中似乎存在内存泄漏,我已将其简化为以下测试用例:http://plnkr.co/edit/JIt8PrV28lKnlSx8I8xP?p=preview .
基本上,这可以归结为我不知道如何从文档中彻底删除 ng-repeat。如果我使用jQuery().remove()
,表格就会从文档中消失,但缓存的监听器(例如$watchCollectionAction()
)会导致泄漏。
我现在有一个 $scope.$destroy()
调用,我想在示例中进行清理,但这不是答案...
谢谢!
最佳答案
如果超时函数是,则 plunkr 示例可以工作
setTimeout( function () {
vm.persons = [];
$scope.$apply();
}, 1000 );
需要 $apply
,因为您是从 Angular 机制外部进行更改的(请参阅 https://docs.angularjs.org/api/ng/type/ $rootScope.Scope#$apply)。
关于javascript - 删除 ng-repeat 而不会泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338054/