Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当使用“过滤”完成过滤时,如何获得angularJS中过滤数据的总长度;ng show";?_Javascript_Jquery_Html_Angularjs - Fatal编程技术网

Javascript 当使用“过滤”完成过滤时,如何获得angularJS中过滤数据的总长度;ng show";?

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"> 问题 修改后,问题是我无法获得表中显示的过滤报告的长度 在修改之前,

为了提高性能,我对代码逻辑进行了如下修改:

修改前

此代码在过滤大量数据(约2000或更多)时的性能非常低


修改后

这段代码大大提高了性能

<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">