Maison interface Web js tutoriel Une explication détaillée de l'utilisation des directives personnalisées dans AngularJS_AngularJS

Une explication détaillée de l'utilisation des directives personnalisées dans AngularJS_AngularJS

May 16, 2016 pm 03:53 PM
angularjs

Les instructions personnalisées d'AngularJS sont vos propres instructions, ainsi que les fonctions de base natives que le compilateur exécute lors de la compilation du DOM. Cela peut être difficile à comprendre. Supposons maintenant que nous souhaitions réutiliser un code spécifique sur différentes pages de notre application sans dupliquer le code. Ensuite, nous pouvons simplement placer ce code dans un fichier séparé et appeler le code à l'aide de la directive personnalisée au lieu de le taper encore et encore. Un tel code est plus facile à comprendre. Il existe quatre types de directives personnalisées dans AngularJS :

  1. Commande d'élément
  2. Commande d'attribut
  3. Directive de classe CSS
  4. Commande de commentaire

Avant de les implémenter dans notre application existante, regardons à quoi ressemblent les directives personnalisées :

Commande d'élément

Écrivez la balise suivante en html, qui est utilisée pour placer des extraits de code. Lorsque nous souhaitons utiliser un code spécifique, nous incluons le code en utilisant la balise ci-dessus.

<guitar-reviews> ... </guitar-reviews>
Copier après la connexion

Dans le fichier JS, utilisez les lignes de code suivantes pour rendre efficace la directive personnalisée angulaireJS ci-dessus.

app.directive('guitarReviews', function() {
 return {
  restrict  : 'E', // used E because of element 
  templateUrl : 'custom-directives/reviews.html'
 };
});
Copier après la connexion

Explication du code :

Comme app.controller, nous définissons d'abord app.directive, puis définissons guitarReview, qui est le nom de la balise d'élément utilisé en HTML. Mais avez-vous remarqué que guitar-review et guitarReviews sont différents ? C'est parce que le trait d'union dans guitar-reviews est converti en chameau, il devient donc guitarReviews dans le fichier JS. L'étape suivante est la fonction anonyme qui renvoie les paramètres. restrict : 'E' signifie que nous définissons une directive d'élément personnalisée et templateUrl pointe vers le fichier d'extrait de code à inclure.

Directive d'attribut

Tapez les attributs suivants dans la balise html du fichier html. Cette balise est utilisée pour contenir des extraits de code. Lorsque nous voulons utiliser un morceau de code spécifique, nous tapons simplement une balise comme celle-ci pour inclure le code.

<div guitar-reviews> ... </div>
Copier après la connexion

Dans le fichier JS, utilisez le code suivant pour rendre effective la directive personnalisée angulaireJS ci-dessus.

app.directive('guitarReviews', function() {
 return {
  restrict  : 'A', // used A because of attribute 
  templateUrl : 'custom-directives/reviews.html'
 };
});
Copier après la connexion

Remarque : AngularJS vous recommande d'utiliser du CSS simple et des commentaires ordinaires au lieu du CSS et des commentaires dans les directives personnalisées.

Implémentons maintenant des commandes personnalisées dans l'application. Vous pouvez télécharger les fichiers du projet ici. J'ai mis le code de la partie critiques dans un fichier séparé, puis j'ai attribué l'extrait de code à un élément et je l'ai finalement utilisé dans la page détails.html
.
Premier pas

Créez un nouveau dossier nommé cDirectives sous le dossier spécifié pour stocker les instructions personnalisées. Ensuite, créez un fichier reviews.html dans ce dossier pour contenir les avis de l'utilisateur. À ce stade, votre hiérarchie de dossiers ressemble à ceci :

2015618121816801.png (152×250)

Étape 2

Coupez la section de révision dans details.html et ajoutez la balise <user-reviews></user-reviews> comme suit :

2015618121835496.png (1024×573)

Étape 3

Copiez le code que vous avez coupé dans la page détails.html dans reviews.html comme indiqué ci-dessous :

&lt;!-- Review Tab START, it has a new controller --&gt;
&lt;div ng-show="panel.isSelected(3)" class="reviewContainer" ng-controller="ReviewController as reviewCtrl" &gt;
 
&lt;!-- User Reviews on each guitar from data.json - simple iterating through guitars list --&gt;
&lt;div class="longDescription uReview" ng-repeat="review in guitarVariable[whichGuitar].reviews"&gt; 
  &lt;h3&gt;Review Points: {{review.star}} &lt;/h3&gt;
  &lt;p&gt; {{review.body}} ~{{review.name}} on &lt;date&gt;{{review.createdOn | date:'MM/yy'}} &lt;/p&gt;
&lt;/div&gt;&lt;!-- End User Reviews --&gt;
 
&lt;!-- This is showing new review preview--&gt;
&lt;div ng-show="add === 1" class="longDescription uReview" &gt; 
  &lt;h3&gt;Review Points: {{reviewCtrl.review.star}} &lt;span ng-click="add=0"&gt;X&lt;/span&gt;&lt;/h3&gt;
  &lt;p&gt; {{reviewCtrl.review.body}} ~ {{reviewCtrl.review.name}} &lt;/p&gt;
&lt;/div&gt;
 
&lt;!-- Add new Review to specific guitar - click this link to show review adding pannel --&gt;
&lt;a href ng-click="add=1" class="addReviewLink"&gt;Add review&lt;/a&gt;  
 
&lt;!-- form validates here using form name and .$valid and on submission we are going to addReview function with guitarID --&gt;
&lt;form class="reviewForm" name="reviewForm" ng-submit="reviewForm.$valid && reviewCtrl.addReview(guitarVariable.indexOf(guitarVariable[whichGuitar]))" novalidate ng-show="add===1" &gt;
  &lt;div&gt;
    Review Points: 
    &lt;!-- ng-option here is setting options, cool&#63; --&gt;
    &lt;select ng-model="reviewCtrl.review.star" ng-options="point for point in [5,4,3,2,1]" required &gt;    
    &lt;/select&gt;
    Email: 
    &lt;input type="email" ng-model="reviewCtrl.review.name" required&gt;
    &lt;button type="submit"&gt;Submit&lt;/button&gt;
    &lt;/div&gt;
    &lt;textarea placeholder="Enter your experience with this guitar..." ng-model="reviewCtrl.review.body"&gt;&lt;/textarea&gt;
&lt;/form&gt;&lt;!-- END add new review --&gt;
&lt;/div&gt;&lt;br /&gt;&lt;!-- END Review Tab --&gt;
Copier après la connexion


Étape 4

Il est désormais possible d'ajouter des actions dans la balise user-reviews. Ouvrons controller.js et ajoutons le code suivant :

GuitarControllers.directive('userReviews', function() {
 return {
  restrict  : 'E', // used E because of element 
  templateUrl : 'partials/cDirectives/reviews.html'
 };
});
Copier après la connexion

Explication du code :

Notre directive <user-reviews> devient ici userReviews (sous forme de chameau) et le trait d'union a disparu. Ci-dessous, nous pouvons dire que lorsqu'il est appelé, le fichier dans templateURL est chargé et la directive est limitée à l'élément E.

Nous venons de personnaliser une directive. Même s’il semble que rien n’a changé dans notre application, notre code est désormais mieux planifié qu’avant. Pouvez-vous personnaliser les directives pour les descriptions et les spécifications ? Essayez-le vous-même.

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

Article chaud

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

Article chaud

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

Tags d'article chaud

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)

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

Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise

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

Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité

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

Créer des applications Web en utilisant PHP et AngularJS

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

Utilisez PHP et AngularJS pour développer une plateforme de gestion de fichiers en ligne afin de faciliter la gestion des fichiers

Introduction aux bases d'AngularJS Introduction aux bases d'AngularJS Apr 21, 2018 am 10:37 AM

Introduction aux bases d'AngularJS

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

Comment utiliser AngularJS en programmation PHP ?

Créez une application Web d'une seule page à l'aide de Flask et AngularJS Créez une application Web d'une seule page à l'aide de Flask et AngularJS Jun 17, 2023 am 08:49 AM

Créez une application Web d'une seule page à l'aide de Flask et AngularJS

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

Comment utiliser PHP et AngularJS pour le développement front-end

See all articles