AngularJS如何在ng-repeats中管理范围



几天前我在程序员stackexchange上问了这个问题,没有收到任何回复,所以我想我会在这里尝试。

我有一个表格,大约有 60 行和 20 列。每个单元都有一个具有隔离作用域的指令。我使用 2 个嵌套的 ng-repeats 来生成表(一个用于行,一个用于列),但我想知道当摘要周期导致 ng-repeats 中的指令重新生成时,角度如何处理范围?

它是否破坏了我的指令中所有以前的隔离作用域并创建新的作用域,或者随着越来越多的摘要发生,这些旧的隔离作用域现在在某个地方孤立并且内存泄漏?

作为开发人员,我是否应该意识到并确保处理任何隔离范围的销毁?

ng-repeat$scope中为要显示的所有值创建一个$$hashKey属性。每当调用$digest时,它都会检查值是否更改。 由于多种原因,ng-repeat通常是慢角度应用的罪魁祸首之一。

  1. 您可能不需要监视变量。如果您只想显示一些不经常更新的数据,则不妨删除双重绑定,这样 angular 就不必在$scope中为它们创建条目
  2. 切勿将函数结果用作 ng 重复值,因为该函数将在每个$digest周期运行
  3. 不要使用过滤器,因为它们在$digest周期中被调用两次并减慢ng-repeat

以下是有关 ng 重复和角度性能的更多信息。

最新更新