ng-repeat内的angularjs ng-model表现不佳

Bar*_*ash 21 javascript performance angularjs

在以下场景中我有角度的性能问题:

<div ng-repeat="a in array">
  <input ng-model="something">
</div>
Run Code Online (Sandbox Code Playgroud)

我在我的控制器中编写了代码,用于ng-click更改数组以拥有不同的对象集.问题是,如果数组具有相当数量的对象,则点击不像我希望的那样响应(短暂延迟).

经过一番调查后,我发现$digest在我改变阵列后需要很长时间ng-click.所以我创建了这个简短的测试代码来重现它.

真正的应用场景是这样的:我有一个表,其中每一行代表一个可编辑的对象,每个对象有许多我想要编辑的不同字段.这样,每当我点击表格中的一行时,就会有另一个html,其中包含我对象属性上ng-repeat不同inputs的所有s .

有没有人知道如何提高效率?

谢谢

vit*_*y-t 3

在同一页面上有太多输入元素通常是一个坏主意。这就是为什么专业的数据网格编辑器选择在单独的弹出窗口或内联中一次仅编辑单个数据行。即使它是在线使用的,对象也是动态注入的。

\n\n

输入元素太重,以至于无法在同一页面上放置太多输入元素。我过去也犯过同样的错误,试图实现一个数据网格,其中所有可编辑字段从一开始就是输入元素。最重要的是,您必须保留实时角度模型绑定,这会增加性能开销。

\n\n

在您的情况下,最简单的方法之一是实现一个指令,该指令在单击之前显示为 span 元素,并在单击事件时交换为输入元素。另一种替代方案 \xe2\x80\x93 两者兼有并切换其可见性样式。后者在角度指令中可能更容易,但可能效率不高。

\n\n

还要留意您拥有的其他绑定。当涉及到数据网格时,这一点变得很重要。在 Angular 1.3 中,您现在可以使用“::”语法进行一次性绑定,这也可能会有所帮助。

\n