Angularjs 过滤器在相互组合使用时

Angularjs filters when used in combination with each other

本文关键字:组合 过滤器 Angularjs      更新时间:2023-09-26

好的,所以我正在观看一个关于Angularjs的YouTube视频,在其中一行代码中,他们使用了两个过滤器。事情是这样的:

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

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

在 angular 使用上述代码的默认行为中,整个事件列表是在被削减为两个之前按日期排序,还是 angular 进行了一些内部优化以使其更有效?还是必须制作自定义过滤器才能实现此优化?

下一个筛选器将应用于另一个筛选器的结果。这称为"链接"。

编辑

没有优化,筛选器执行从上一个筛选器获取子集,然后应用其筛选器逻辑。如果要进行优化,应考虑实现适合您需求的自定义筛选器。