Angularjs在in-include中调用ng-repeat方法的次数

angularjs amount of method calls in in-include with ng-repeat

本文关键字:方法 ng-repeat 调用 in-include Angularjs      更新时间:2023-09-26

我们需要用angularjs渲染一个树状结构。我们使用递归模板来做这件事,在树中有超过100个项目之前,它就可以工作了。我注意到getTemplate方法被多次调用。

我知道角可以这样做,但对我来说,这是太多了。在这个简单的例子中,getTemplate方法被调用了9次,我不相信这不会影响性能。

在我们的递归模板的实际情况中,get模板的数量简直是疯了,在树中的3个项目可以达到100。

有没有办法优化ng-include ?示例:http://plnkr.co/edit/tDAL5I0L5qVR4JYxhjaa?p=preview

每当有一个新的摘要循环时,这部分代码将被重新计算,以检查是否有任何更改:

<ng-include src="itemTemplate(i)"></ng-include>

所以你才会接到那么多电话。

我认为最好的解决方案是把所有的树数据放在一个数据结构中,比如数组,放在作用域上,然后渲染它。

例子在plnkr