2016-08-23 1 views
0

verborgen sind Ich habe eine Tabelle, die einige Zeilen aus einer Tabelle verbirgt, wenn ein Kontrollkästchen ausgewählt ist. Anfangs zeigt es die Anzahl, die ich vorberechnet habe. Ich benutze ng-show, um eine Zeile zu verstecken/anzuzeigen. Also gibt die Längenfunktion immer noch die Gesamtanzahl zurück.Zeilen zählen, die durch ng-show/hide/if

<input type="checkbox" ng-model="isRChecked" id="chck3" ng-change="ExcludeRChecked();"><label for="chck3">Exclude R</label> 


<div>{{Detail.length}} Rows in Table</div> 
<tbody> 
    <tr ng-repeat="x in Detail" ng-show="excludeR(x.ID)"> 
    <td colspan="1">{{x.feature}}</td> 
    <td colspan="1" ng-click="test(x.ID)">{{x.ID}}</td> 
    <td colspan="1">{{x.Log}}</td> 
    </tr> 
</tbody> 

Ich muss die Anzahl der Zeilen in der Tabelle anzeigen. Wenn das Kontrollkästchen ausgewählt ist, sollte die Anzahl der versteckten Zeilen von ng-show entfernt werden.

Die Winkelfunktion EXCLUDER()

$scope.excludeR=function(item){ 
      if($scope.isRChecked===false) 
       return true; 
       for(x in $scope.R){ 
        if($scope.R[x]===item) 
        {       
         return false; 
        } 
       } 
       return true; 

     }; 
+0

können Sie Ihre Checkbox Code auch hinzufügen? –

Antwort

0

Prefilter Detail in Controller

$scope.filteredDetail = $scope.Detail.filter(x => excludeR(x.ID)) 

<div>{{filteredDetail.length}} Rows in Table</div> 
<tbody> 
    <tr ng-repeat="x in filteredDetails track by x.ID "> 
    <td colspan="1">{{x.feature}}</td> 
    <td colspan="1" ng-click="test(x.ID)">{{x.ID}}</td> 
    <td colspan="1">{{x.Log}}</td> 
    </tr> 
</tbody> 
1
<div>{{visibleDetailsCount}} Rows in Table</div> 
<tbody> 
    <tr ng-repeat="x in Detail" ng-show="excludeR(x.ID)"> 


$scope.excludeR(param){ 
    //... 
    condition?$scope.visibleDetailsCount++:$scope.visibleDetailsCount--; 
    //... 
} 
+0

Wir können ein Fn nicht mit ng-repeat verwenden. Stuck in einer Endlosschleife – matrixguy