1

如果我使用ng-repeatfilter,如何確定有多少元素被過濾掉(反之亦然,顯示了多少元素)?具體來說,我想創建一個搜索欄來創建過濾器,但我也想顯示過濾器隱藏了多少元素(即類似Showing 6 of 10 results)。確定ng-repeat過濾器顯示的結果數量

回答

4

請看這裏http://jsbin.com/xuyuy/1/edit

在您的中繼器,你可以創建新的數組即:personsfiltered

ng-repeat="person in personsfilterd = (persons | filter : search) 

,之後只顯示一部開拓創新數組的長度和濾波陣列:

Showing {{personsfilterd.length}} of {{persons.length }} results 

Full代碼在這裏:

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> 
+0

我正在使用這一段時間,它工作得很好,但由於某種原因停止工作。你可以在我的新問題上發表意見:http://stackoverflow.com/questions/26341910/variable-set-in-ng-repeat-not-being-created – 2014-10-13 14:43:44

0

首先,ngRepeat具有這些:$index$first$middle$last用於確定所述當前位置。所以我想你可能對$last感興趣。我不確定的是它是否會提取原始計數或已過濾的計數。

編輯: 您可以從CTRL獲得原始值的計數,通過設置varX.length和使用在你的模板(HTML代碼),然後,假設$last被返回最終計數+ 1(因爲它是0 - 基於)你可以在應用過濾器後計數。

ngRepeat

0

我發現我的回答here。解決方案是將過濾的數據分配給ng-repeat中的新變量。可能會導致一些內存問題,但在我的情況下並不真正相關。