Javascript 确定ng repeat filter显示多少结果

Javascript 确定ng repeat filter显示多少结果,javascript,angularjs,filter,angularjs-ng-repeat,angularjs-filter,Javascript,Angularjs,Filter,Angularjs Ng Repeat,Angularjs Filter,如果我将ng repeat与filter一起使用,我如何确定过滤掉了多少元素(反之亦然,显示了多少元素)?具体来说,我想创建一个搜索栏来创建过滤器,但我还想显示过滤器隐藏了多少元素(例如,显示10个结果中的6个)。首先,ngRepeat具有以下功能:$index,$First,$middle,$last用于确定当前位置。所以我想你可能对$last感兴趣。我不确定的是,它是否会提取原始计数还是过滤后的计数 编辑: 通过设置varX.length并在模板(HTML代码)中使用它,然后假设$last返

如果我将
ng repeat
filter
一起使用,我如何确定过滤掉了多少元素(反之亦然,显示了多少元素)?具体来说,我想创建一个搜索栏来创建过滤器,但我还想显示过滤器隐藏了多少元素(例如,
显示10个结果中的6个)。

首先,
ngRepeat
具有以下功能:
$index
$First
$middle
$last
用于确定当前位置。所以我想你可能对
$last
感兴趣。我不确定的是,它是否会提取原始计数还是过滤后的计数

编辑: 通过设置
varX.length
并在模板(HTML代码)中使用它,然后假设
$last
返回最终计数+1(因为它是基于0的),您可以在应用过滤器后获得原始值的计数


首先,
ngRepeat
具有以下功能:
$index
$First
$middle
$last
,用于确定当前位置。所以我想你可能对
$last
感兴趣。我不确定的是,它是否会提取原始计数还是过滤后的计数

编辑: 通过设置
varX.length
并在模板(HTML代码)中使用它,然后假设
$last
返回最终计数+1(因为它是基于0的),您可以在应用过滤器后获得原始值的计数

请看这里

在中继器中,您可以创建新阵列,即:personsfiltered

ng-repeat="person in personsfilterd = (persons | filter : search )
然后显示原始数组和过滤数组的长度:

Showing {{personsfilterd.length}} of {{persons.length }} results
完整代码如下:

var app = angular.module('app', []);

app.controller('fCtrl', function($scope) {

  $scope.persons = [
    'Mike', 'Tom', 'Tim', 'Jim', 'Ken'
  ]

});

 <div ng-app="app">
    <div ng-controller="fCtrl">
      <input type="text" ng-model = "search"> Showing {{personsfilterd.length}} of {{persons.length }} results
      <li ng-repeat="person in personsfilterd = (persons | filter : search )">{{person}}</li>
    </div>
    </div>
var-app=angular.module('app',[]);
应用控制器('fCtrl',功能($scope){
$scope.persons=[
“迈克”、“汤姆”、“蒂姆”、“吉姆”、“肯”
]
});
显示{persons.length}结果中的{personsfilterd.length}}
  • {{person}
  • 请参见此处

    在中继器中,您可以创建新阵列,即:personsfiltered

    ng-repeat="person in personsfilterd = (persons | filter : search )
    
    然后显示原始数组和过滤数组的长度:

    Showing {{personsfilterd.length}} of {{persons.length }} results
    
    完整代码如下:

    var app = angular.module('app', []);
    
    app.controller('fCtrl', function($scope) {
    
      $scope.persons = [
        'Mike', 'Tom', 'Tim', 'Jim', 'Ken'
      ]
    
    });
    
     <div ng-app="app">
        <div ng-controller="fCtrl">
          <input type="text" ng-model = "search"> Showing {{personsfilterd.length}} of {{persons.length }} results
          <li ng-repeat="person in personsfilterd = (persons | filter : search )">{{person}}</li>
        </div>
        </div>
    
    var-app=angular.module('app',[]);
    应用控制器('fCtrl',功能($scope){
    $scope.persons=[
    “迈克”、“汤姆”、“蒂姆”、“吉姆”、“肯”
    ]
    });
    显示{persons.length}结果中的{personsfilterd.length}}
    
  • {{person}

  • 我找到了答案。解决方案是将过滤后的数据分配给
    ng repeat
    中的新变量。可能会导致一些内存问题,但与我的情况无关。

    我找到了答案。解决方案是将过滤后的数据分配给
    ng repeat
    中的新变量。可能会导致一些内存问题,但与我的情况并不相关。

    我用了一段时间,它工作得很好,但由于某种原因它停止了工作。你能对我的新问题发表意见吗:我用了一段时间,效果很好,但由于某种原因它停止了工作。你能否就我的新问题发表意见: