J'ai un ensemble de tuiles qui affichent un certain nombre en fonction de l'option sélectionnée par l'utilisateur. Je voudrais maintenant implémenter un tri selon le nombre affiché.
Le code ci-dessous montre comment je l'ai implémenté (en obtenant / définissant une valeur dans la portée des cartes parents). Maintenant, comme la fonction orderBy prend une chaîne, j'ai essayé de définir une variable dans la portée de la carte appelée curOptionValue et de trier par cela, mais cela ne semble pas fonctionner.
La question devient donc: comment créer une fonction de tri personnalisée?
<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>
et contrôleur:
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];
}
}]);