2 votes

Comment filtrer un tableau par une valeur dans une ligne en cliquant sur un bouton Angular JS

J'ai un bouton dans ma vue. Lorsque j'appuie sur ce bouton, je veux filtrer ma table. Mon tableau a un élément appelé "marché" qui peut être "ios" ou "Android". Lorsque j'appuie sur le bouton "ios", je veux afficher uniquement les données qui ont "ios" comme marché. Dans le tableau par défaut, toutes les données sont affichées (à la fois ios et Android).

bouton

<button ng-click="applyiosfilter()">Search</search>

tableau

<tr dir-paginate="datad in downloadsdata|filter:downloadfilter"> ...
</tr>

tableaux pour les données sobres

$scope.downloadsdata = [];
$scope.downloadfilter = [];

ajouter des données dans le champ d'application

$scope.applyiosfilter = function() {
    angular.forEach($scope.downloadsdata, function(value, key) {
        if(value.market==='ios') {
            $scope.downloadfilter[key] = $scope.downloadsdata[key];
        }
    });
};

2voto

Sajal Points 3652

Vous pouvez essayer de filtrer la fonction comme :

<button ng-click="applyiosfilter()">Search</search>
<tr dir-paginate="datad in downloadsdata|filter:applyfilter"> ...</tr>

$scope.applyiosfilter = function() {
    $scope.applyfilter = function(datad) { 
        return datad.Market.toLowerCase().indexOf('ios') != -1    
   };
};

EDIT : Ceci sera déclenché uniquement lorsque le bouton est cliqué.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X