ng-repeat效率和工作

时间:2014-05-20 13:47:10

标签: angularjs angularjs-ng-repeat

我在角色中使用 ng-repeat 进行模型渲染, 如果我在模型/集合中推送新元素,角度是否只会再次处理更新或循环整个模型。

2 个答案:

答案 0 :(得分:1)

我的经验(使用Angular版本1.2.7)是这样的,无论何时收集内容发生变化,整个ng-repeat都会被重新绘制。 您可以通过修改生成的DOM轻松测试它。例如,通过向DOM元素添加my-id =“1”,my-id =“2”等自定义属性。 然后更改集合中的某些内容,这将触发新的$摘要周期。 Angular将获取更改并重绘DOM - >您的自定义属性将消失。

所以我认为Angular会遍历整个模型。

答案 1 :(得分:0)

在文档中明确提到:

ngRepeat

  

ngRepeat指令从集合中为每个项目实例化一次模板。每个模板实例都有自己的范围

Angular将身份与每个项目相关联,已经与该项目的现有项目相关联的元素将无法重新创建。

因此,只有从集合中删除的元素才会从DOM中删除。此外,如果项目在集合中移动,则不需要新的范围,但需要在DOM中移动。