javascript - AngularJS in-include 和 ng-repeat 中方法调用的数量

标签 javascript angularjs angularjs-ng-repeat

我们需要用 angularjs 渲染一个树结构。我们使用递归模板来完成此操作,并且在树中的项目超过 100 个之前它就可以工作。我注意到getTemplate方法被调用多次。

我知道 Angular 这样做是可以的,但对我来说这就太多了。在这个简单的example getTemplate方法被调用9次,我不相信这不会损害性能。

在我们使用递归模板的实际案例中,获取模板的数量简直是疯狂的,树中的 3 个项目可以达到 100。

有什么方法可以以某种方式优化 ng-include 吗?示例:http://plnkr.co/edit/tDAL5I0L5qVR4JYxhjaa?p=preview

最佳答案

每次有新的摘要周期时,都会重新评估这部分代码,以检查是否有任何更改:

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

这就是为什么你接到这么多电话。

我认为最好的解决方案是将所有树数据放入数组等数据结构中,放入范围中,然后渲染它。

示例在这里 on plnkr

关于javascript - AngularJS in-include 和 ng-repeat 中方法调用的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25113959/

相关文章:

javascript - D3js 和 CSS 选择器

javascript - 如何在 Angular 中仅获取/检查表的可见行

Angularjs - 向作用域添加 promise 的最简洁方法,现在 Angular 弃用了自动解包 promise

javascript - 如何解决 ng-repeat AngularJS 中的 sort() 方法?

javascript - Vue 数据未在组件内定义,但它是

Javascript 模块模式问题

javascript - 如何计算折线距离?

javascript - 指令模板内的 Angular 数​​据绑定(bind)

javascript - 重新加载 ng-repeat 在删除旧列表之前呈现新列表

angularjs - 表单验证 AngularJS 欺骗时出现 Ng 重复错误