当我在路由服务中使用ngRepeat时,Angular正在泄漏DOM元素。
我们的应用程序有一个包含搜索结果的表格。当用户单击分页控件上的下一个按钮时,应用程序会更改路径。所以http://website/results/1
将成为http://website/results/2
这导致angular在ngRepeat指令上调用compile,这会清除它的缓存。缓存中的DOM元素和$ scope对象都存在并且泄漏。
您可以在http://docs.angularjs.org/api/
导航到上面的站点,打开开发工具并启动时间轴。然后开始单击左侧的导航。从顶部开始并一直点击,直到你到达导航的底部然后再返回。
您将看到DOM节点数量不断增长,永远不会被完全收集。
这是一个真正的问题。
我的问题是:现在有人如何解决这个问题?有工作吗?
另外,作为旁注但仍然相关的是,angular似乎泄漏了包装内联表达式的每个元素。 {{objectOnTheScope}}
答案 0 :(得分:1)
它可能与嵌套的ng-repeat内存泄漏有关。 见https://github.com/angular/angular.js/issues/1313#issuecomment-10378451