TL;博士 在Angular中过滤大型列表的最佳方法是什么?
这主要是关于表现。
我有一组用ng-repeat列出的对象。将有数百到数千个项目。我现在需要根据以下任一项过滤列表:
最佳选择:
有关用例的详细信息:
所以我找到了Ben Nadel的帖子http://www.bennadel.com/blog/2487-filter-vs-nghide-with-ngrepeat-in-angularjs.htm但我的问题是为了解决一般的标准用例。
答案 0 :(得分:2)
如果您使用的是Angular 1.3,则角度滤镜已针对性能进行了优化。它们现在是无状态的,并且在原始数据源发生更改之前不执行(或重新评估)。对于旧版Angular过滤器,情况并非如此。在此处了解这些无状态过滤器http://blog.thoughtram.io/angularjs/2014/11/19/exploring-angular-1.3-stateful-filters.html
对于旧版本,如果您可以在控制器或服务中进行过滤,并且始终将过滤后的结果绑定到视图,那会更好。这是关于保留诸如$scope.filteredItem=[];
之类的数组,并在过滤条件改变时更新它。
您仍然可以使用$filter
服务在代码中使用角度过滤器。