当Angularjs彼此组合使用时会过滤

时间:2015-06-17 19:20:51

标签: javascript angularjs ng-repeat

好的,我正在观看a YouTube video about Angularjs,在其中一行代码中,他们使用了两个过滤器。它是这样的:

<div ng-repeat="item in event.events | orderBy: 'date' | limitTo: '2'" ...>

我唯一的问题是这里的操作顺序。这个问题不是关于排序然后限制项目列表与首先限制项目然后对它们进行排序之间的区别。为了进一步说明,问题更多的是关于角度如何实现此以及是否进行任何优化,因此可以更有效地决定如何使用这些过滤器。似乎排序100列表然后将其切割为两个元素是非常低效的,你可以(可能在角度之外或使用自定义过滤器)找到最新的项目,但是当你得到项目的数量时停止查看你想要显示。

在使用上述代码的角度默认行为中,整个事件列表是按日期排序,然后再减少为两个,还是有角度做一些内部优化以使其更有效?或者是否必须制作自定义过滤器才能实现此优化?

1 个答案:

答案 0 :(得分:2)

下一个过滤器将应用于另一个过滤器的结果。这被称为&#34;链接&#34;。

修改

没有优化,过滤器执行从前一个过滤器获取子集,然后应用其过滤器逻辑。如果您需要优化,则应考虑实施符合您需求的自定义过滤器。