我需要在页面的不同部分输出两个包含来自同一ng-repeat
的数据的列表。例如:
// list # 1
<ul ng-repeat="item in items track by item.id">
<li ng-bind="item.name"></li>
</ul>
// list # 2
<ul ng-repeat="item in items track by item.id">
<li ng-bind="item.color"></li>
</ul>
有没有办法使用ng-repeat
中第一个ng-repeat
实例的数据,而不是使用相同list # 2
的多个实例?
答案 0 :(得分:2)
想要这样做的原因是什么?我怀疑会有任何明显的性能提升,所以我没有看到再次使用ng-repeat(以及再次使用)来获取相同数据的问题。
除非你有其他理由不想那样做,否则我会说没关系。
答案 1 :(得分:2)
我想不出以上述方式进行优化的方法。但是,如果您的列表很长,您可能会遇到性能问题。由于双向数据绑定,ng-repeats每个都设置了一个隐式观察器。当您的网页包含大量数据和大量观察者时,您可能会遇到性能问题。如果你的列表数据不需要是动态的 - 也就是说,用选择或其他东西改变 - 我建议使用一次时间绑定。它们可以通过Angular 1.3开箱即用,还有第三方软件包可以在Angular 1.2中完成同样的工作。如果你担心ng-repeats的性能(这听起来就像你在问题中真正得到的那样),那么值得实现一次性绑定。
答案 2 :(得分:1)
计算上说,制作两个循环,每个循环一个操作或一个循环两个操作是相同的(如果不是一些开销)。
可能你可以做一个打印所有<li>
元素的循环,然后将一些元素移动到另一个<ul>
,但实际上可能会更复杂(并且可能需要在&#34;角度方式&#34;)。
我怀疑是否有一种更优化的方式,如果有它不是很多