Derniers tutoriels de développement web
 

AngularJS Filtres


Les filtres peuvent être ajoutés AngularJS aux données de format.


AngularJS Filtres

AngularJS fournit des filtres pour transformer des données:

  • currency en forme un nombre à un format monétaire.
  • date Format date à un format spécifié.
  • filter Sélectionnez un sous - ensemble d'éléments d'un tableau.
  • json Format un objet à une chaîne JSON.
  • limitTo Limites un tableau / string, dans un nombre spécifié d'éléments / caractères.
  • lowercase Format une chaîne en minuscules.
  • number en forme un nombre en une chaîne.
  • orderBy Ordonne un tableau par une expression.
  • uppercase Format une chaîne en majuscules.

Ajout de filtres aux expressions

Les filtres peuvent être ajoutés à des expressions en utilisant le caractère pipe | , suivi d'un filtre.

Les uppercase chaînes de format de filtre en majuscules:

Exemple

<div ng-app="myApp" ng-controller="personCtrl">

<p>The name is {{ lastName | uppercase }}</p>

</div>
Essayez - le vous - même »

Les lowercase chaînes de format de filtre à minuscules:

Exemple

<div ng-app="myApp" ng-controller="personCtrl">

<p>The name is {{ lastName | lowercase }}</p>

</div>
Essayez - le vous - même »

Ajout de filtres aux directives

Les filtres sont ajoutés aux directives, comme ng-repeat , en utilisant le caractère pipe | , suivi d'un filtre:

Exemple

Le orderBy filtre trie un tableau:

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | orderBy:'country'">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>
Essayez - le vous - même »

Le filtre de monnaie

La currency filtre formate un nombre en tant que monnaie:

Exemple

<div ng-app="myApp" ng-controller="costCtrl">

<h1>Price: {{ price | currency }}</h1>

</div>
Essayez - le vous - même »

En savoir plus sur le filtre de la monnaie dans notre monnaie AngularJS Filter Référence


Le filtre de filtre

Le filter filtre sélectionne un sous - ensemble d'un tableau.

Le filter filtre ne peut être utilisé sur des tableaux, et il retourne un tableau contenant uniquement les éléments correspondants.

Exemple

Retour les noms qui contient la lettre "i":

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | filter : 'i'">
    {{ x }}
  </li>
</ul>

</div>
Essayez - le vous - même »

En savoir plus sur le filtre de filtre dans notre filtre AngularJS Filtre Référence


Filtrer un tableau Basé sur l'entrée utilisateur

En réglant le ng-model directive sur un champ de saisie, nous pouvons utiliser la valeur du champ d'entrée comme une expression dans un filtre.

Tapez une lettre dans le champ de saisie, et la liste va diminuer / augmenter en fonction du match:

  • {{ X }}

Exemple

<div ng-app="myApp" ng-controller="namesCtrl">

<p><input type="text" ng-model="test"></p>

<ul>
  <li ng-repeat="x in names | filter : test">
    {{ x }}
  </li>
</ul>

</div>
Essayez - le vous - même »

Trie un tableau en fonction des commentaires des utilisateurs

Cliquez sur les en-têtes de table pour modifier l'ordre de tri ::

prénom Pays
{{X.name}} {{}} X.country

En ajoutant le ng-click directive sur les en- têtes de table, nous pouvons exécuter une fonction qui modifie l'ordre de tri de la matrice:

Exemple

<div ng-app="myApp" ng-controller="namesCtrl">

<table border="1" width="100%">
  <tr>
    <th ng-click="orderByMe('name')">Name</th>
    <th ng-click="orderByMe('country')">Country</th>
  </tr>
  <tr ng-repeat="x in names | orderBy:myOrderBy">
    <td>{{x.name}}</td>
    <td>{{x.country}}</td>
  </tr>
</table>

</div>

<script>
angular.module('myApp', []).controller('namesCtrl', function($scope) {
  $scope.names = [
    {name:'Jani',country:'Norway'},
    {name:'Carl',country:'Sweden'},
    {name:'Margareth',country:'England'},
    {name:'Hege',country:'Norway'},
    {name:'Joe',country:'Denmark'},
    {name:'Gustav',country:'Sweden'},
    {name:'Birgit',country:'Denmark'},
    {name:'Mary',country:'England'},
    {name:'Kai',country:'Norway'}
  ];
  $scope.orderByMe = function(x) {
    $scope.myOrderBy = x;
  }
});
</script>
Essayez - le vous - même »

Filtres personnalisés

Vous pouvez faire vos propres filtres en enregistrant une nouvelle fonction de l'usine de filtration avec votre module:

Exemple

Faites un filtre personnalisé appelé "MyFormat":

<ul ng-app="myApp" ng-controller="namesCtrl">
    <li ng-repeat="x in names">
        {{x | myFormat }}
    </li>
</ul>

<script>
var app = angular.module('myApp', []);
app.filter(' myFormat ', function() {
    return function(x) {
        var i, c, txt = "";
        for (i = 0; i < x.length; i++) {
            c = x[i];
            if (i % 2 == 0) {
                c = c.toUpperCase();
            }
            txt += c;
        }
        return txt;
    };
});
app.controller('namesCtrl', function($scope) {
    $scope.names = ['Jani', 'Carl', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit', 'Mary', 'Kai'];
});
</script>
Essayez - le vous - même »

Le myFormat filtre formater tous les caractères en majuscules.