Hier ist mein Code:
<div ng-show="?" ng-repeat="item in items | notEmpty">
</div>
Filter:
Kb.filter("notEmpty", function(){
return function(input){
var output=[];
for(var i=0;i<input.length;i++){
if(input[i]){
output.Push(input[i]);
}
}
return output;
}});
Ich muss wiederholte s entsprechend der Anzahl der gefilterten Elemente in der Schleife anzeigen/ausblenden. Was ist der beste Weg, dies zu tun?
Vielen Dank
Mit dem ng-repeat
-Ausdruck können gefilterte Ergebnisse einer Variablen zugewiesen werden. Auf diese Variable kann aus dem aktuellen Bereich zugegriffen werden, sodass Sie sie in dem von Ihnen gewünschten Bereich verwenden können:
<p>Number of filtered items: {{filteredItems.length}}</p>
<div
ng-show="filteredItems.length > 0"
ng-repeat="item in filteredItems = (items | notEmpty)"
>
{{$index}}
</div>
Ab Angular 1.3 können Sie folgende Syntax für ng-repeat
verwenden:
variable in expression as alias_expression
Das ist:
<p>Number of filtered items: {{filteredItems.length}}</p>
<div ng-repeat="item in items | notEmpty as filteredItems">
...
</div>
Am einfachsten ist es, wenn Sie den Filter in Ihrem Controller ausführen. Etwas wie das:
function MyCtrl($scope, notEmptyFilter)
{
//$scope.items is put into the scope somehow
$scope.filteredItems = notEmptyFilter($scope.items);
}
Dann würde Ihr HTML-Code ungefähr so aussehen:
<div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems">
</div>
Ich habe das gefunden
So zeigen Sie die Länge der gefilterten Wiederholungsdaten an ,
hier wird beschrieben, wie Sie die Anzahl nach dem Filtern der Liste ermitteln