Derniers tutoriels de développement web
 

AngularJS directives


AngularJS vous permet d' étendre HTML avec de nouveaux attributs appelés directives.

AngularJS a un ensemble de directives intégrées qui offre des fonctionnalités à vos applications.

AngularJS permet également de définir vos propres directives.


AngularJS directives

AngularJS directives sont étendues attributs HTML avec le préfixe ng- .

Le ng-app directive initialise une application AngularJS.

Le ng-init directive initialise les données d'application.

Le ng-model directive lie la valeur des contrôles HTML (entrée, sélectionnez, textarea) pour les données d'application.

Lisez à propos de tous les AngularJS directives dans nos AngularJS de référence directive .

Exemple

<div ng-app="" ng-init="firstName='John'">

<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>

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

Le ng-app directive indique également que le AngularJS élément <div> est le «propriétaire» de l'application AngularJS.


liaison de données

Le {{ firstName }} expression, dans l'exemple ci - dessus, est un AngularJS données d' expression de liaison.

Liaison de données dans AngularJS lie AngularJS expressions avec des données de AngularJS.

{{ firstName }} est lié avec ng-model="firstName" .

Dans l'exemple suivant deux champs de texte sont liés ensemble avec deux directives ng-modèle:

Exemple

<div ng-app="" ng-init="quantity=1;price=5">

Quantity: <input type="number" ng-model="quantity">
Costs:    <input type="number" ng-model="price">

Total in dollar: {{ quantity * price }}

</div>
Essayez - le vous - même »
Remarque Utilisation de ng-init est pas très commun. Vous apprendrez comment initialiser des données dans le chapitre sur les contrôleurs.

Répétition des éléments HTML

Le ng-repeat directive répète un élément HTML:

Exemple

<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>
Essayez - le vous - même »

Le ng-repeat directive clone effectivement des éléments HTML une fois pour chaque élément d'une collection.

Le ng-repeat directive utilisé sur un tableau d'objets:

Exemple

<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">

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

</div>
Essayez - le vous - même »
Remarque AngularJS est parfait pour CRUD de base de données (Créer Lire Update Delete) des applications.
Imaginez si ces objets étaient des enregistrements d'une base de données.

La directive ng-app

Le ng-app directive définit l'élément racine d'une application AngularJS.

Le ng-app directive auto-amorçage (initialiser automatiquement) l'application lorsqu'une page Web est chargée.


La directive ng-init

Le ng-init directive définit des valeurs initiales pour une application AngularJS.

Normalement, vous ne pourrez pas utiliser ng-init. Vous allez utiliser un contrôleur ou d'un module à la place.

Vous en apprendrez plus sur les contrôleurs et les modules plus tard.


La directive ng-modèle

Le ng-model directive lie la valeur des contrôles HTML (entrée, sélectionnez, textarea) pour les données d'application.

Le ng-model directive peut aussi:

  • Fournir le type validation des données d'application (nombre, email, nécessaire).
  • Fournir l'état des données d'application (invalide, sale, touché, erreur).
  • Fournir des classes CSS pour les éléments HTML.
  • éléments HTML Liez les formulaires HTML.

En savoir plus sur le ng-model directive dans le chapitre suivant.


Créer de nouvelles directives

En plus de toutes les directives de AngularJS intégrées, vous pouvez créer vos propres directives.

De nouvelles directives sont créées en utilisant le .directive fonction.

Pour invoquer la nouvelle directive, faire un élément HTML avec le même nom de balise que la nouvelle directive.

Lorsque vous nommez une directive, vous devez utiliser un nom de cas de chameau, w3TestDirective , mais lors de l' appel, vous devez utiliser - nom séparé, w3-test-directive :

Exemple

<body ng-app="myApp">

<w3-test-directive></w3-test-directive>

<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        template : "<h1>Made by a directive!</h1>"
    };
});
</script>

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

Vous pouvez invoquer une directive à l'aide:

  • nom de l'élément
  • Attribut
  • Classe
  • Commentaire

Les exemples ci-dessous seront tous produire le même résultat:

nom de l'élément

<w3-test-directive></w3-test-directive>
Essayez - le vous - même »

Attribut

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

Classe

<div class="w3-test-directive"></div>
Essayez - le vous - même »

Commentaire

<!-- directive: w3-test-directive -->
Essayez - le vous - même »

Restrictions

Vous pouvez restreindre vos directives seulement à être invoqués par certaines des méthodes.

Exemple

En ajoutant un restrict la propriété avec la valeur "A" , la directive ne peut être invoquée par des attributs:

var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        restrict : "A",
        template : "<h1>Made by a directive!</h1>"
    };
});
Essayez - le vous - même »

Les valeurs morales sont restreindre:

  • E pour le nom Element
  • A pour Attribute
  • C pour la classe
  • M pour commenter

Par défaut la valeur est EA , ce qui signifie que les deux noms d'éléments et noms d' attributs peuvent invoquer la directive.