Eigene Sortierfunktion in ng-repeat
Ich habe eine Reihe von Kacheln, die eine bestimmte Zahl anzeigen, je nachdem, welche Option vom Benutzer ausgewählt wird. Ich möchte jetzt eine Sortierung nach der angezeigten Nummer implementieren.
Der folgende Code zeigt, wie ich ihn implementiert habe (indem ich einen Wert im Gültigkeitsbereich der übergeordneten Karten erhalte / einstelle). Da die orderBy-Funktion eine Zeichenfolge akzeptiert, habe ich versucht, eine Variable im Kartenbereich mit dem Namen curOptionValue festzulegen und danach zu sortieren, aber es scheint nicht zu funktionieren.
Es stellt sich also die Frage, wie ich eine benutzerdefinierte Sortierfunktion erstelle.
<div ng-controller="aggViewport" >
<div class="btn-group" >
<button ng-click="setOption(opt.name)" ng-repeat="opt in optList" class="btn active">{{opt.name}}</button>
</div>
<div id="container" iso-grid width="500px" height="500px">
<div ng-repeat="card in cards" class="item {{card.class}}" ng-controller="aggCardController">
<table width="100%">
<tr>
<td align="center">
<h4>{{card.name}}</h4>
</td>
</tr>
<tr>
<td align="center"><h2>{{getOption()}}</h2></td>
</tr>
</table>
</div>
</div>
und Controller:
module.controller('aggViewport',['$scope','$location',function($scope,$location) {
$scope.cards = [
{name: card1, values: {opt1: 9, opt2: 10}},
{name: card1, values: {opt1: 9, opt2: 10}}
];
$scope.option = "opt1";
$scope.setOption = function(val){
$scope.option = val;
}
}]);
module.controller('aggCardController',['$scope',function($scope){
$scope.getOption = function(){
return $scope.card.values[$scope.option];
}
}]);