通常,ng-repeat用于表示来自控制器的视图中的对象和数组。它用于重复数据组中的每个元素。我想知道表示数据组的替代方法不使用ng-repeat的视图。
答案 0 :(得分:1)
虽然答案取决于您提供解决方案的情况,
根据我的开发经验,如果您的数据非常少,则ng-repeat是好的。如果数据很重,则ng-repeat的性能会降低很多。
为了解决上述问题,我们可以选择自定义指令
以下是一些您可以寻求获得一些想法的指令
AngularJS ng-repeat Alternative Approach
本文档将逐步介绍创建自定义指令的方法。
这是关于ng-repeat处理大量数据的替代方法 绑定更好的页面性能。本文将提供 有关如何用特定数据替换特定ng-repeat的见解。
AngularJS directive for much more quicker lists rendering
您可以添加的自定义指令,您可以根据您的要求使用以下功能进行自定义
- 浅名表(ngRepeat使用深表)
- 动画支持
- 在摘要周期之外导致列表呈现的特殊服务
- 即使在繁重的复杂列表上也能平滑滚动(查看示例)
- 性能提升约200%
- 还在犹豫吗?尝试使用ng-repeat列表和带有quick-ng-repeat的页面滚动页面
除此之外,我可以寻求一些解决方案,如分页延迟加载等,以提高性能
答案 1 :(得分:0)
ng-repeat很适合使用。使用ng-repeat有一个优点,无论何时使用 track by $ index ,它都会进行一些散列,当它遇到类似的元素时更新模型属性,它不会重新计算该特定元素的布局。在幕后,ngRepeat为每个任务添加一个$$ hashKey属性以跟踪它。
但是当你拥有大型数据集时,ng-repeat不适合使用,因为它涉及繁重的DOM操作。你应该考虑使用ng-repeat和分页。
您可以考虑在自定义指令中使用transclusion,以实现您正在寻找的行为,而无需使用ng-repeat。