1

考虑以下 Plunker:

http://plnkr.co/edit/10Rs92cRulf9VtI3Bav6

它似乎工作正常,但如果您查看控制台,您会发现有问题。仅凭那张小桌子,Angular 就已经达到了 10 个 Digest 循环的限制!

在像这样的小数据集中这不是问题,但实际的生产页面有 10 个不同的过滤器,可以跨越 30 多天。随着数据的增长,$digest 循环越来越失控。

我能做些什么来阻止它?我一直在翻阅源代码,试图弄清楚为什么表格会一遍又一遍地被消化,即使数据根本没有改变。我错过了什么吗?

4

1 回答 1

3

过滤器实际上是为视图按摩数据。

ng-repeat 上循环并创建日期范围的过滤器导致了问题。ng-repeat 每次都调用该过滤器。时间。它。'重复' :) 并且据我所知,您只需要在启动时(或数据更改时)创建一次范围。如果您将日期范围创建代码移出过滤器,它应该会更高效。您甚至可以考虑移动范围创建服务器端。

分叉你的 plunkr http://plnkr.co/edit/XTn7hjbQgV1DxcBlOYVJ

于 2013-10-29T07:39:51.723 回答