javascript - 删除 ng-repeat 而不会泄漏

标签 javascript jquery angularjs memory-leaks

我一直在查看的基于 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/

相关文章:

javascript - 如何通过jQuery获取div容器的高度?

javascript - 为什么 jquery removeClass to 按钮在ajax之后仍然可以正常工作?

javascript - 将全局函数包装在 (function($){ }(jQuery) 中

angularjs - Uncss 忽略选项不起作用

javascript - jquery 自动完成功能不起作用,输入时没有任何显示

javascript - 无法读取 null 的属性 'childNodes'

angularjs - 将 AngularJS 1.x 项目从 gulp & bower 迁移到 webpack 3 时如何构建统一的 $templateCache

angularjs - 如何在angular2的列表中应用搜索过滤器?

javascript - 在 React 中单击组件外部时更改状态

javascript - Skrollr,在方向改变时翻转图像