Maison interface Web js tutoriel Explication détaillée de l'utilisation des filtres dans Angularjs_AngularJS

Explication détaillée de l'utilisation des filtres dans Angularjs_AngularJS

May 16, 2016 pm 03:11 PM
angularjs filters

La fonction de Filter est de recevoir une entrée, de la traiter selon une certaine règle, puis de renvoyer le résultat traité à l'utilisateur. Le filtre peut être utilisé dans des modèles, des contrôleurs ou des services, et il est également facile de personnaliser un filtre.

Utiliser le filtre dans le modèle

Le filtre peut être utilisé dans les modèles de vue en utilisant l'expression syntaxique suivante :

{{ expression | filtre }}

Par exemple : le format {{ 12 | monnaie }} utilise le filtre de devise pour filtrer le nombre 12 sous forme de devise, et le résultat est 12,00 $.

Le filtre peut être appliqué aux résultats d'un autre filtre. C'est ce qu'on appelle le « chaînage » et s'utilise avec la syntaxe suivante :

{{ expression | filtre1 | filtre2 ... }}

Des paramètres peuvent être requis dans Filtre. La syntaxe est :

{{ expression | filtre:argument1:argument2:... }}

Par exemple : Le format {{ 1234 | number:2 }} utilise l'utilisation du filtre number pour filtrer le nombre 1234 en un nombre avec deux décimales. Le résultat est : 1 234,00.

Utiliser le filtre
dans les contrôleurs, les services et les directives

Vous pouvez utiliser des filtres dans les contrôleurs, les services et les directives.

Pour ce faire, vous devez injecter le nom de la dépendance dans votre contrôleur/service/directive : filter; par exemple : si un filtre est number, vous devez injecter numberFilter en utilisant la dépendance. Le paramètre injecté est une fonction qui prend une valeur comme premier paramètre puis utilise le deuxième paramètre pour filtrer les paramètres.

L'exemple suivant utilise un filtre appelé filtre. Ce filtre peut réduire les tableaux en fonction des sous-tableaux. Vous pouvez également appliquer un balisage dans le modèle de vue, comme : {{ctrl.array|filter:'a'}}, qui effectuera une recherche en texte intégral pour "a". Cependant, l'utilisation de filtres dans le modèle de vue filtrera à nouveau chaque filtre et si le tableau est relativement grand, il sera chargé plusieurs fois.

Donc, l'exemple suivant appelle directement le filtre dans le contrôleur. Grâce à cela, le contrôleur peut appeler le filtre en cas de besoin (par exemple : lorsque les données backend sont chargées ou que l'expression du filtre change).

index.html :

<div ng-controller="FilterController as ctrl">
 <div>
  All entries:
  <span ng-repeat="entry in ctrl.array">{{entry.name}} </span>
 </div>
 <div>
  Entries that contain an "a":
  <span ng-repeat="entry in ctrl.filteredArray">{{entry.name}} </span>
 </div>
</div>
 
Copier après la connexion

script.js :

angular.module('FilterInControllerModule', []).
controller('FilterController', ['filterFilter', function(filterFilter) {
 this.array = [
  {name: 'Tobias'},
  {name: 'Jeff'},
  {name: 'Brian'},
  {name: 'Igor'},
  {name: 'James'},
  {name: 'Brad'}
 ];
 this.filteredArray = filterFilter(this.array, 'a');
}]);
Copier après la connexion

Le résultat est :

All entries: Tobias Jeff Brian Igor James Brad
Entries that contain an "a": Tobias Brian James Brad
Copier après la connexion

Créer des filtres personnalisés :

Écrire votre propre filtre est très simple : il suffit d'enregistrer une nouvelle fonction d'usine de filtres dans votre module. En interne, filterProvider est utilisé ici. Cette fonction d'usine doit renvoyer une nouvelle fonction de filtre avec la valeur d'entrée comme premier argument. Tous les paramètres de filtre sont transmis en tant que paramètres supplémentaires à la fonction de filtre.

Cette fonction de filtre devrait être une fonction simple. Cela signifie qu’il devrait être apatride et idempotent. Lorsque la fonction d'entrée change, Angular s'appuie sur ces propriétés et exécute le filtre.

Remarque : le nom du filtre doit être un identifiant d'expression angulaire valide. Par exemple majuscule ou orderBy. Les caractères spéciaux ne sont pas autorisés dans le nom, tels que les tirets et les points. Si vous souhaitez que votre filtre soit doté d'un espace de noms, vous pouvez utiliser des majuscules (myappSubsectionFilterx) ou un trait de soulignement (myapp_subsection_filterx).

L'exemple de filtre suivant inverse une chaîne. De plus, il peut ajouter une condition pour mettre la chaîne en majuscule.

index.html

<div ng-controller="MyController">
 <input ng-model="greeting" type="text"><br>
 No filter: {{greeting}}<br>
 Reverse: {{greeting|reverse}}<br>
 Reverse + uppercase: {{greeting|reverse:true}}<br>
 Reverse, filtered in controller: {{filteredGreeting}}<br>
</div>
 
Copier après la connexion

script.js

angular.module('myReverseFilterApp', [])
.filter('reverse', function() {
 return function(input, uppercase) {
  input = input || '';
  var out = "";
  for (var i = 0; i < input.length; i++) {
   out = input.charAt(i) + out;
  }
  // conditional based on optional argument
  if (uppercase) {
   out = out.toUpperCase();
  }
  return out;
 };
})
.controller('MyController', ['$scope', 'reverseFilter', function($scope, reverseFilter) {
 $scope.greeting = 'hello';
 $scope.filteredGreeting = reverseFilter($scope.greeting);
}]);
Copier après la connexion

Le résultat est :

No filter: hello
Reverse: olleh
Reverse + uppercase: OLLEH
Reverse, filtered in controller: olleh
Copier après la connexion

Filtres avec état

Il est fortement recommandé d'écrire des filtres avec état car ceux-ci ne peuvent pas être optimisés avec Angular, ce qui entraîne souvent des problèmes de performances. De nombreux filtres avec état sont convertis en filtres sans état simplement en exposant l'état caché en tant que modèle et en le convertissant en paramètre de filtre.

Cependant, si vous devez écrire un filtre avec état, vous devez marquer le filtre comme $stateful, ce qui signifie qu'il sera exécuté une ou plusieurs fois au cours de chaque cycle $digest.

index,html

<div ng-controller="MyController">
 Input: <input ng-model="greeting" type="text"><br>
 Decoration: <input ng-model="decoration.symbol" type="text"><br>
 No filter: {{greeting}}<br>
 Decorated: {{greeting | decorate}}<br>
</div>
 
Copier après la connexion

script.js :

angular.module('myStatefulFilterApp', [])
.filter('decorate', ['decoration', function(decoration) {

 function decorateFilter(input) {
  return decoration.symbol + input + decoration.symbol;
 }
 decorateFilter.$stateful = true;

 return decorateFilter;
}])
.controller('MyController', ['$scope', 'decoration', function($scope, decoration) {
 $scope.greeting = 'hello';
 $scope.decoration = decoration;
}])
.value('decoration', {symbol: '*'});

Copier après la connexion

Le résultat est :

No filter: hello
Decorated: *hello*
Copier après la connexion

La prochaine fois, j'écrirai un article sur l'utilisation courante du filtre dans Angularjs.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel de base de VUE3 : utiliser des filtres pour le filtrage des données Tutoriel de base de VUE3 : utiliser des filtres pour le filtrage des données Jun 15, 2023 pm 08:37 PM

VUE3 est actuellement un framework populaire dans le développement front-end. Les fonctions de base qu'il fournit peuvent grandement améliorer l'efficacité du développement front-end. Parmi eux, les filtres sont un outil très utile dans VUE3. L'utilisation de filtres permet de filtrer, filtrer et traiter facilement les données. Alors, que sont les filtres ? En termes simples, les filtres sont des filtres dans VUE3. Ils peuvent être utilisés pour traiter les données rendues afin de présenter des résultats plus souhaitables dans la page. les filtres sont quelques-uns

Conseils pour utiliser des filtres pour implémenter le formatage et le filtrage des données dans Vue Conseils pour utiliser des filtres pour implémenter le formatage et le filtrage des données dans Vue Jun 25, 2023 pm 06:49 PM

Vue.js est un framework JavaScript populaire qui fournit de nombreuses fonctionnalités et outils utiles pour aider les développeurs front-end à développer d'excellentes applications. Parmi eux, les filtres sont une fonction très utile dans Vue.js, qui peut être utilisée pour le formatage et le filtrage des données. Dans Vue, les filtres sont équivalents aux pipelines dans les modèles et peuvent être utilisés pour traiter et transformer des données. Par exemple, nous pouvons utiliser des filtres pour modifier le format de date de la date d'origine à

Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Jun 15, 2017 pm 05:50 PM

Javascript est un langage tout à fait unique. Il est unique en termes d'organisation du code, de paradigme de programmation du code et de théorie orientée objet. La question de savoir si Javascript est un langage orienté objet a été débattue depuis un certain temps. Il y a évidemment une réponse depuis longtemps. Cependant, même si Javascript est dominant depuis vingt ans, si vous souhaitez comprendre les frameworks populaires tels que jQuery, Angularjs et même React, il suffit de regarder le « Black Horse Cloud Classroom JavaScript Advanced Framework ». Tutoriel vidéo de conception".

Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Jun 27, 2023 pm 07:37 PM

À l’ère de l’information d’aujourd’hui, les sites Web sont devenus un outil important permettant aux individus d’obtenir des informations et de communiquer. Un site Web réactif peut s’adapter à divers appareils et offrir aux utilisateurs une expérience de haute qualité, ce qui est devenu un point chaud dans le développement de sites Web modernes. Cet article expliquera comment utiliser PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité. Introduction à PHP PHP est un langage de programmation open source côté serveur idéal pour le développement Web. PHP présente de nombreux avantages, tels que la facilité d'apprentissage, la multiplateforme, la riche bibliothèque d'outils et l'efficacité du développement.

Créer des applications Web en utilisant PHP et AngularJS Créer des applications Web en utilisant PHP et AngularJS May 27, 2023 pm 08:10 PM

Avec le développement continu d'Internet, les applications Web sont devenues un élément important de la construction de l'information d'entreprise et un moyen nécessaire au travail de modernisation. Afin de faciliter le développement, la maintenance et l'extension des applications Web, les développeurs doivent choisir un cadre technique et un langage de programmation adaptés à leurs besoins de développement. PHP et AngularJS sont deux technologies de développement Web très populaires. Ce sont respectivement des solutions côté serveur et côté client. Leur utilisation combinée peut considérablement améliorer l'efficacité du développement et l'expérience utilisateur des applications Web. Avantages de PHPPHP

Utilisez PHP et AngularJS pour développer une plateforme de gestion de fichiers en ligne afin de faciliter la gestion des fichiers Utilisez PHP et AngularJS pour développer une plateforme de gestion de fichiers en ligne afin de faciliter la gestion des fichiers Jun 27, 2023 pm 01:34 PM

Avec la popularité d’Internet, de plus en plus de personnes utilisent le réseau pour transférer et partager des fichiers. Cependant, pour diverses raisons, l'utilisation de méthodes traditionnelles telles que FTP pour la gestion de fichiers ne peut pas répondre aux besoins des utilisateurs modernes. Par conséquent, la création d’une plateforme de gestion de fichiers en ligne facile à utiliser, efficace et sécurisée est devenue une tendance. La plate-forme de gestion de fichiers en ligne présentée dans cet article est basée sur PHP et AngularJS. Elle peut facilement effectuer des opérations de téléchargement, de modification, de suppression et autres, et fournit une série de fonctions puissantes, telles que le partage de fichiers, la recherche,

Comment utiliser PHP et AngularJS pour le développement front-end Comment utiliser PHP et AngularJS pour le développement front-end May 11, 2023 pm 05:18 PM

Avec la popularité et le développement d’Internet, le développement front-end est devenu de plus en plus important. En tant que développeurs front-end, nous devons comprendre et maîtriser divers outils et technologies de développement. Parmi eux, PHP et AngularJS sont deux outils très utiles et populaires. Dans cet article, nous verrons comment utiliser les deux outils pour le développement front-end. 1. Introduction à PHP PHP est un langage de script open source populaire côté serveur. Il convient au développement Web et peut fonctionner sur des serveurs Web et divers systèmes d'exploitation. Les avantages de PHP sont la simplicité, la rapidité et la commodité

Comment utiliser AngularJS en programmation PHP ? Comment utiliser AngularJS en programmation PHP ? Jun 12, 2023 am 09:40 AM

Avec la popularité des applications Web, le framework front-end AngularJS est devenu de plus en plus populaire. AngularJS est un framework JavaScript développé par Google qui vous aide à créer des applications Web dotées de fonctionnalités d'application Web dynamiques. En revanche, pour la programmation backend, PHP est un langage de programmation très populaire. Si vous utilisez PHP pour la programmation côté serveur, utiliser PHP avec AngularJS apportera des effets plus dynamiques à votre site Web.

See all articles