Javascript 当使用“过滤”完成过滤时,如何获得angularJS中过滤数据的总长度;ng show";?
为了提高性能,我对代码逻辑进行了如下修改: 修改前 此代码在过滤大量数据(约2000或更多)时的性能非常低Javascript 当使用“过滤”完成过滤时,如何获得angularJS中过滤数据的总长度;ng show";?,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,为了提高性能,我对代码逻辑进行了如下修改: 修改前 此代码在过滤大量数据(约2000或更多)时的性能非常低 修改后 这段代码大大提高了性能 <tr ng-repeat="item in ctrl.updatedData" ng-show="([item] | filter:ctrl.filterByQuarter | filter:ctrl.searchText).length > 0"> 问题 修改后,问题是我无法获得表中显示的过滤报告的长度 在修改之前,
修改后
这段代码大大提高了性能
<tr ng-repeat="item in ctrl.updatedData"
ng-show="([item] | filter:ctrl.filterByQuarter | filter:ctrl.searchText).length > 0">
问题
修改后,问题是我无法获得表中显示的过滤报告的长度
在修改之前,我能够从
ctrl.filteredReport.length
仅供参考
我已经试过了
的曲目,但性能没有像ng show
那样提高
让我知道是否需要更多信息才能使问题更清楚。<li ng-repeat="item in ctrl.filteredReport = (ctrl.updatedData |
filter:ctrl.filterByQuarter:strict | filter:searchText)">
过滤器:ctrl.filterByQuarter:strict |过滤器:searchText)“>
它可以在一眨眼之间从DOM中删除/添加项目,非常酷
但是,使用海量数据时速度会变慢。但是ng show隐藏/显示元素而不是删除它们,同样会获得更好的性能
您可以使用track by获取索引,并按照@Alex Toby的指示编写自定义函数
<li ng-repeat="item in ctrl.filteredReport = (ctrl.updatedData |
filter:ctrl.filterByQuarter:strict | filter:searchText) track by $index">
Hi@Bijay,我想你必须创建一个像这里提到的自定义过滤器。
<li ng-repeat="item in ctrl.filteredReport = (ctrl.updatedData |
filter:ctrl.filterByQuarter:strict | filter:searchText) track by $index">