2017-02-20 65 views
0

我使用的是Angular 1.4。众所周知,在为表格等东西渲染大量行时,ng-repeat可能会遇到一些性能问题。但是我想知道是否有一种使用ng-repeat或某种替代迭代的最佳方式来简单地呈现我所拥有的数据数组。渲染表格行而不绑定性能

我不需要任何绑定,因为它只是为报表输出数据。我尝试了一些建议,如一次性绑定,但它仍然需要大量的时间(对于1000条记录约10秒或更长)。我尝试过的其他非Angular方法是在后端呈现HTML,然后返回HTML而不是数据数组。我有一个自定义指令,只是将HTML添加到元素。即使2000行,这也不到一秒钟(显然,因为我没有使用Angular)。

但是如果我能够在Angular中完成同样的事情,甚至在Angular的控制器中做类似的事情,那将会很好。任何输入将不胜感激。

+0

我想知道为什么你想渲染1000行。 – ChiefTwoPencils

+0

我通常会为它分页,但用户希望能够一次查看所有数据,或者按Ctrl + F查找他们正在查找的记录。所以这更多的是业务需求。虽然不是太常见,但他们运行的报告基于日期范围,所以如果他们选择了很长的时间范围,记录数量可能会很大。 – kenshin9

+0

它是什么,然后我猜。我会给[使用ng-节省重复](http://stackoverflow.com/documentation/angularjs/1921/profiling-and-performance/6270/7-simple-performance-improvements#t=20170220203549826701)一看,包括“其他接近“而不是寻呼。事实是,他们可能无法看到他们,你只需要给他们认识他们可以和你提到的其他功能仍然可以实现。 – ChiefTwoPencils

回答

0

可以使用单程此绑定:

<ul ng-repeat="item in ::items"> 
    <li>{{ ::item.name }}</li> 
</ul> 

请注意,您必须将::语法添加到中继器的每个条目。

我不确定你的逻辑有多复杂,但1000行的10秒听起来很荒谬。