Recherche…


Expressions angulaires - Texte vs Nombre

Cet exemple montre comment les expressions angulaires sont évaluées lors de l'utilisation de type="text" et de type="number" pour l'élément d'entrée. Considérez le contrôleur suivant et visualisez:

Manette

 var app = angular.module('app', []);

 app.controller('ctrl', function($scope) {
     $scope.textInput = {
         value: '5'
     };     
     $scope.numberInput = {
         value: 5
     };
 });

Vue

<div ng-app="app" ng-controller="ctrl">
    <input type="text" ng-model="textInput.value">
    {{ textInput.value + 5 }}
    <input type="number" ng-model="numberInput.value">
    {{ numberInput.value + 5 }}
</div>
  • Lorsque vous utilisez + dans une expression liée à une entrée de texte , l'opérateur concaténera les chaînes (premier exemple), affichant 55 sur l'écran * .
  • Lorsque vous utilisez + dans une expression liée à la saisie d'un numéro , l'opérateur retourne la somme des nombres (deuxième exemple), affichant 10 sur l'écran * .

* - Jusqu'à ce que l'utilisateur modifie la valeur dans le champ de saisie, l'affichage changera ensuite en conséquence.

Exemple de travail

ngRépéter

ng-repeat est une directive intégrée dans Angular qui vous permet d'itérer un tableau ou un objet et vous permet de répéter un élément une fois pour chaque élément de la collection.

ng-repeat un tableau

<ul>
    <li ng-repeat="item in itemCollection">
       {{item.Name}}
    </li>
</ul>

Où:
item = article individuel dans la collection
itemCollection = Le tableau que vous itérez


ng-repeter un objet

<ul>
    <li ng-repeat="(key, value) in myObject">
       {{key}} : {{value}}
    </li>
</ul>

Où:
key = le nom de la propriété
valeur = la valeur de la propriété
myObject = l'objet que vous itérez


filtrer votre ng-repeat par entrée utilisateur

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText">
       {{string}}
    </li>
</ul>

Où:
searchText = le texte que l'utilisateur souhaite filtrer par liste
stringArray = un tableau de chaînes, par exemple ['string', 'array']

Vous pouvez également afficher ou référencer les éléments filtrés ailleurs en attribuant un alias avec as aliasName , comme ceci:

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="string in stringArray | filter:searchText as filteredStrings">
       {{string}}
    </li>
</ul>
<p>There are {{filteredStrings.length}} matching results</p>

ng-repeat-start et ng-repeat-end

Pour répéter plusieurs éléments DOM en définissant un point de départ et un point de fin, vous pouvez utiliser les directives ng-repeat-start et ng-repeat-end .

<ul>
    <li ng-repeat-start="item in [{a: 1, b: 2}, {a: 3, b:4}]">
        {{item.a}}
    </li>
    <li ng-repeat-end>
        {{item.b}}
    </li>
</ul>

Sortie:

  • 1
  • 2
  • 3
  • 4

Il est important de toujours fermer ng-repeat-start avec ng-repeat-end .

Les variables

ng-repeat expose également ces variables à l'intérieur de l'expression

Variable Type Détails
$index Nombre Égal à l'index de l'itération courante ($ index === 0 sera évalué à true au premier élément itéré; voir d' $first )
$first Booléen Évalue à true au premier élément itéré
$last Booléen Évalue à true au dernier élément itéré
$middle Booléen Évalue à true si l'élément se situe entre $first et $last
$even Booléen Évalué à true à une itération paire (équivalent à $index%2===0 )
$odd Booléen Évalué à true à une itération impaire (équivalent à $index%2===1 )

Considérations de performance

Rendu ngRepeat peut devenir lent, en particulier lors de l'utilisation de grandes collections.

Si les objets de la collection ont une propriété d'identifiant, vous devez toujours track by l'identificateur plutôt que l'objet entier, qui est la fonctionnalité par défaut. Si aucun identifiant n'est présent, vous pouvez toujours utiliser l' $index intégré.

<div ng-repeat="item in itemCollection track by item.id">
<div ng-repeat="item in itemCollection track by $index">

Portée de ngRepeat

ngRepeat crée toujours une étendue enfant isolée, il faut donc faire attention si la portée parent doit être accessible à l'intérieur de la répétition.

Voici un exemple simple montrant comment définir une valeur dans votre portée parent à partir d'un événement click à l'intérieur de ngRepeat .

scope val:  {{val}}<br/>
ctrlAs val: {{ctrl.val}}
<ul>
    <li ng-repeat="item in itemCollection">
        <a href="#" ng-click="$parent.val=item.value; ctrl.val=item.value;">
            {{item.label}} {{item.value}}
        </a>
    </li>
</ul>

$scope.val = 0;
this.val = 0;

$scope.itemCollection = [{
    id: 0,
    value: 4.99,
    label: 'Football'
},
{
    id: 1,
    value: 6.99,
    label: 'Baseball'
},
{
    id: 2,
    value: 9.99,
    label: 'Basketball'
}];

S'il n'y avait que val = item.value à ng-click il ne val = item.value pas à jour le val dans l'étendue parent en raison de l'étendue isolée. C'est pourquoi la portée parent est accessible avec $parent référence $parent ou avec la syntaxe controllerAs (par exemple ng-controller="mainController as ctrl" ).

Imbriqué ng-repeat

Vous pouvez également utiliser ng-repeat imbriqué.

<div ng-repeat="values in test">
    <div ng-repeat="i in values">
      [{{$parent.$index}},{{$index}}] {{i}}
    </div>
</div>

var app = angular.module("myApp", []);
app.controller("ctrl", function($scope) {
  $scope.test = [
    ['a', 'b', 'c'],
    ['d', 'e', 'f']
  ];
});

Ici, pour accéder à l'index du parent ng-repeat à l'intérieur de child ng-repeat, vous pouvez utiliser $parent.$index .

ngShow et ngHide

La directive ng-show affiche ou masque l'élément HTML basé sur si l'expression qui lui est transmise est vraie ou fausse. Si la valeur de l'expression est falsifiée, elle se cachera. Si c'est véridique alors ça montrera.

La directive ng-hide est similaire. Cependant, si la valeur est falsifiée, elle affichera l'élément HTML. Lorsque l'expression est véridique, elle le cachera.

Exemple de travail JSBin

Contrôleur :

var app = angular.module('app', []);
  
angular.module('app')
  .controller('ExampleController', ExampleController);
 
function ExampleController() {
  
  var vm = this;
  
  //Binding the username to HTML element
  vm.username = '';
  
  //A taken username
  vm.taken_username = 'StackOverflow';
  
}

Vue

<section ng-controller="ExampleController as main">
    
    <p>Enter Password</p>
    <input ng-model="main.username" type="text">
    
    <hr>
    
    <!-- Will always show as long as StackOverflow is not typed in -->
    <!-- The expression is always true when it is not StackOverflow -->
    <div style="color:green;" ng-show="main.username != main.taken_username">
      Your username is free to use!
    </div>
    
    <!-- Will only show when StackOverflow is typed in -->
    <!-- The expression value becomes falsy -->
    <div style="color:red;" ng-hide="main.username != main.taken_username">
      Your username is taken!
    </div>
    
    <p>Enter 'StackOverflow' in username field to show ngHide directive.</p>
    
 </section>

ngOptions

ngOptions est une directive qui simplifie la création d'une liste déroulante HTML pour la sélection d'un élément à partir d'un tableau qui sera stocké dans un modèle. L'attribut ngOptions est utilisé pour générer dynamiquement une liste d'éléments <option> pour l'élément <select> utilisant le tableau ou l'objet obtenu en évaluant l'expression de compréhension ngOptions.

Avec ng-options le balisage peut être réduit à une balise select et la directive crée la même sélection:

<select ng-model="selectedFruitNgOptions" 
        ng-options="curFruit as curFruit.label for curFruit in fruit">
</select>

Il y a une autre façon de créer select options select en utilisant ng-repeat , mais il n'est pas recommandé d'utiliser ng-repeat car il est principalement utilisé pour des usages généraux, comme forEach juste pour faire une boucle. Alors que ng-options est spécifiquement conçu pour créer select options de balises select .

L’exemple ci-dessus utilisant ng-repeat serait

<select ng-model="selectedFruit">
    <option ng-repeat="curFruit in fruit" value="{{curFruit}}">
        {{curFruit.label}}
    </option>
</select>

EXEMPLE COMPLET

Voyons l'exemple ci-dessus en détail également avec quelques variations.

Modèle de données pour l'exemple:

$scope.fruit = [
    { label: "Apples", value: 4, id: 2 },
    { label: "Oranges", value: 2, id: 1 },
    { label: "Limes", value: 4, id: 4 },
    { label: "Lemons", value: 5, id: 3 }
];

<!-- label for value in array -->
<select ng-options="f.label for f in fruit" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

 <option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Effets:

f.label sera l'étiquette de l' <option> et la valeur contiendra l'objet entier.

EXEMPLE COMPLET


<!-- select as label for value in array -->
<select ng-options="f.value as f.label for f in fruit" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

 <option value="4"> Apples </option>

Effets:

f.value (4) sera la valeur dans ce cas, alors que l'étiquette est toujours la même.

EXEMPLE COMPLET


<!-- label group by group for value in array -->
<select ng-options="f.label group by f.value for f in fruit" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

<option value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Effets:

Les options seront regroupées en fonction de leur value . Les options avec la même value tomberont dans une catégorie

EXEMPLE COMPLET


<!-- label disable when disable for value in array -->
<select ng-options="f.label disable when f.value == 4 for f in fruit" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Effets:

"Pommes" et "Limes" seront désactivés (impossible à sélectionner) à cause de la condition disable when f.value==4 . Toutes les options avec la value=4 seront désactivées

EXEMPLE COMPLET


<!-- label group by group for value in array track by trackexpr -->
<select ng-options="f.value as f.label group by f.value for f in fruit track by f.id" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

<option value="4"> Apples </option>

Effets:

Il n’ya pas de changement visuel lors de l’utilisation de trackBy , mais Angular détectera les modifications par l’ id au lieu de par référence, ce qui est toujours une meilleure solution.

EXEMPLE COMPLET


<!-- label for value in array | orderBy:orderexpr track by trackexpr -->
<select ng-options="f.label for f in fruit | orderBy:'id' track by f.id" ng-model="selectedFruit"></select>

Balise d'option générée lors de la sélection:

<option disabled="" value="{ label: "Apples", value: 4, id: 2 }"> Apples </option>

Effets:

orderBy est un filtre standard AngularJS qui organise les options par ordre croissant (par défaut), afin que "Oranges" apparaisse en premier puisque son id = 1.

EXEMPLE COMPLET


Tous les <select> avec les ng-options ng-model doivent avoir ng-model attaché.

ngModèle

Avec ng-model, vous pouvez associer une variable à n'importe quel type de champ de saisie. Vous pouvez afficher la variable en utilisant des accolades doubles, par exemple {{myAge}} .

<input type="text" ng-model="myName">
<p>{{myName}}</p>

Au fur et à mesure que vous tapez dans le champ de saisie ou que vous le modifiez de quelque manière que ce soit, vous verrez instantanément la valeur dans le paragraphe mise à jour.

La variable ng-model, dans cet exemple, sera disponible dans votre contrôleur en tant que $scope.myName . Si vous utilisez la syntaxe controllerAs :

<div ng-controller="myCtrl as mc">
    <input type="text" ng-model="mc.myName">
    <p>{{mc.myName}}</p>
</div>

Vous devrez vous référer à la portée du contrôleur en pré-attendant l'alias du contrôleur défini dans l'attribut ng-controller à la variable ng-model. De cette façon, vous n'aurez pas besoin d'injecter $scope dans votre contrôleur pour référencer votre variable ng-model, la variable sera disponible sous la forme this.myName dans la fonction de votre contrôleur.

ngClass

Supposons que vous deviez afficher le statut d'un utilisateur et que vous ayez plusieurs classes CSS possibles. Angular permet de choisir facilement parmi une liste de plusieurs classes possibles qui vous permettent de spécifier une liste d'objets incluant des conditions. Angular est capable d'utiliser la classe correcte en fonction de la véracité des conditions.

Votre objet doit contenir des paires clé / valeur. La clé est un nom de classe qui sera appliqué lorsque la valeur (conditionnelle) est évaluée à true.

<style>
    .active { background-color: green; color: white; }
    .inactive { background-color: gray; color: white; }
    .adminUser { font-weight: bold; color: yellow; }
    .regularUser { color: white; }
</style>

<span ng-class="{ 
    active: user.active, 
    inactive: !user.active, 
    adminUser: user.level === 1, 
    regularUser: user.level === 2 
}">John Smith</span>

Angular vérifiera l'objet $scope.user pour voir le statut active et le numéro de level . Selon les valeurs de ces variables, Angular appliquera le style correspondant au <span> .

ngIf

ng-if est une directive similaire à ng-show mais insère ou supprime l'élément du DOM au lieu de le cacher simplement. Angular 1.1.5 introduit la directive ng-If. Vous pouvez utiliser la directive ng-if au-dessus des versions 1.1.5. Ceci est utile car Angular ne traitera pas les digests pour les éléments à l'intérieur d'un ng-if supprimé, ng-if réduit la charge de travail d'Angular, en particulier pour les liaisons de données complexes.

Contrairement à ng-show , la directive ng-if crée une étendue enfant qui utilise l'héritage prototype. Cela signifie que la définition d'une valeur primitive sur la portée enfant ne s'appliquera pas au parent. Pour définir une primitive sur la portée $parent propriété $parent de la portée enfant doit être utilisée.

JavaScript

angular.module('MyApp', []);

angular.module('MyApp').controller('myController', ['$scope', '$window', function myController($scope, $window) {
    $scope.currentUser= $window.localStorage.getItem('userName');
}]);

Vue

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

DOM si currentUser n'est pas currentUser

<div ng-controller="myController">
    <div ng-if="currentUser">
        Hello, {{currentUser}}
    </div>
    <!-- ng-if: !currentUser -->
</div>

DOM si currentUser est currentUser

<div ng-controller="myController">
    <!-- ng-if: currentUser -->
    <div ng-if="!currentUser">
        <a href="/login">Log In</a>
        <a href="/register">Register</a>
    </div>
</div>

Exemple de travail

Promesse de fonction

La directive ngIf accepte également les fonctions, qui exigent logiquement de renvoyer true ou false.

<div ng-if="myFunction()">
    <span>Span text</span>
</div>

Le texte span apparaîtra uniquement si la fonction renvoie true.

$scope.myFunction = function() {
    var result = false;
    // Code to determine the boolean value of result 
    return result;
};

Comme toute expression angulaire, la fonction accepte tout type de variable.

ngMouseenter et ngMouseleave

Les directives ng-mouseenter et ng-mouseleave sont utiles pour exécuter des événements et appliquer un style CSS lorsque vous passez ou sortez de vos éléments DOM.

La directive ng-mouseenter exécute une expression dont un événement d'entrée de souris (lorsque l'utilisateur entre son pointeur de souris sur l'élément DOM dans lequel réside cette directive)

HTML

<div ng-mouseenter="applyStyle = true" ng-class="{'active': applyStyle}">

Dans l'exemple ci-dessus, lorsque l'utilisateur pointe son curseur sur le div , applyStyle devient true , ce qui applique la classe CSS .active à la ng-class .

La directive ng-mouseleave exécute une expression un événement de sortie de la souris (lorsque l'utilisateur éloigne le curseur de la souris de l'élément DOM dans lequel réside cette directive)

HTML

<div ng-mouseenter="applyStyle = true" ng-mouseleaver="applyStyle = false" ng-class="{'active': applyStyle}">

En réutilisant le premier exemple, maintenant, lorsque l'utilisateur prend le pointeur de la souris en dehors du div, la classe .active est supprimée.

ngDisabled

Cette directive est utile pour limiter les événements d'entrée en fonction de certaines conditions existantes.

La directive ng-disabled accepte et exprime une valeur qui doit correspondre à une valeur véridique ou à une valeur falsifiée.

ng-disabled est utilisé pour appliquer conditionnellement l'attribut disabled sur un élément d' input .

HTML

<input type="text" ng-model="vm.name">

<button ng-disabled="vm.name.length===0" ng-click="vm.submitMe">Submit</button>

vm.name.length===0 est évalué à true si la longueur de l' input est 0, ce qui désactive le bouton, empêchant l'utilisateur de déclencher l'événement click de ng-click

ngDblclick

La directive ng-dblclick est utile lorsque vous souhaitez ng-dblclick un événement de double-clic à vos éléments DOM.

Cette directive accepte une expression

HTML

<input type="number" ng-model="num = num + 1" ng-init="num=0">

<button ng-dblclick="num++">Double click me</button>

Dans l'exemple ci-dessus, la valeur conservée à l' input sera incrémentée lorsque vous double-cliquerez sur le bouton.

Directives intégrées Cheat Sheet

ng-app Définit la section AngularJS.

ng-init Définit une valeur de variable par défaut.

ng-bind Alternative au modèle {{}}.

ng-bind-template Lie plusieurs expressions à la vue.

ng-non-bindable États que les données ne peuvent pas être liées.

ng-bind-html Lie la propriété HTML interne d'un élément HTML.

ng-change Evalue l'expression spécifiée lorsque l'utilisateur modifie l'entrée.

ng-checked Définit la case à cocher.

ng-class Définit la classe css dynamiquement.

ng-cloak Empêche l'affichage du contenu jusqu'à ce qu'AngularJS prenne le contrôle.

ng-click Exécute une méthode ou une expression lorsque l'utilisateur clique ng-click un élément.

ng-controller Associe une classe de contrôleur à la vue.

ng-disabled Contrôle la propriété désactivée de l'élément de formulaire

ng-form Définit un formulaire

ng-href dynamiquement les variables AngularJS à l'attribut href.

ng-include Utilisé pour récupérer, compiler et inclure un fragment HTML externe sur votre page.

ng-if Supprime ou recrée un élément dans le DOM en fonction d'une expression

ng-switch Commande de ng-switch conditionnelle en fonction de l'expression correspondante.

ng-model Lie les éléments input, select, textarea etc avec la propriété model.

ng-readonly Utilisé pour définir l'attribut readonly sur un élément.

ng-repeat Permet de parcourir chaque élément d'une collection pour créer un nouveau modèle.

ng-selected Utilisé pour définir l'option sélectionnée dans l'élément.

ng-show/ng-hide Affiche / ng-show/ng-hide éléments en fonction d'une expression.

ng-src Liez dynamiquement les variables AngularJS à l'attribut src.

ng-submit Bind angular expressions pour soumettre des événements.

ng-value Lier les expressions angulaires à la valeur de.

ng-required Lier les expressions angulaires aux événements de soumission.

ng-style Définit le ng-style CSS sur un élément HTML.

ng-pattern Ajoute le validateur de modèle à ngModel.

ng-maxlength Ajoute le validateur maxlength à ngModel.

ng-minlength Ajoute le validateur de minlength à ngModel.

ng-classeven Fonctionne conjointement avec ngRepeat et ne prend effet que sur les lignes impaires (paires).

ng-classodd Fonctionne conjointement avec ngRepeat et ne prend effet que sur les lignes impaires (paires).

ng-cut Permet de spécifier un comportement personnalisé pour un événement coupé.

ng-copy Utilisé pour spécifier le comportement personnalisé lors d'un événement de copie.

ng-paste Utilisé pour spécifier un comportement personnalisé sur un événement de collage.

ng-options Utilisé pour générer dynamiquement une liste d'éléments pour l'élément.

ng-list Permet de convertir une chaîne en liste en fonction du délimiteur spécifié.

ng-open Utilisé pour définir l'attribut open sur l'élément, si l'expression à l'intérieur de ngOpen est dans la vérité.

Source (édité un peu)

ngClick

La directive ng-click associe un événement click à un élément DOM.

La directive ng-click vous permet de spécifier un comportement personnalisé lorsqu'un élément de DOM est cliqué.

Il est utile lorsque vous souhaitez joindre des événements de clic sur les boutons et les gérer sur votre contrôleur.

Cette directive accepte une expression avec l'objet événement disponible en tant que $event

HTML

<input ng-click="onClick($event)">Click me</input>

Manette

.controller("ctrl", function($scope) {   
    $scope.onClick = function(evt) {
        console.debug("Hello click event: %o ",evt);
    } 
})

HTML

<button ng-click="count = count + 1" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

HTML

<button ng-click="count()" ng-init="count=0">
  Increment
</button>
<span>
  count: {{count}}
</span>

Manette

...

$scope.count = function(){
    $scope.count = $scope.count + 1;
}
...

Lorsque l'utilisateur clique sur le bouton, un appel de la fonction onClick "Hello click event" suivi de l'objet événement.

ngRequired

Le ng-required ajoute ou supprime l' required attribut de validation sur un élément, qui à son tour activer et désactiver le require clé de validation pour l' input .

Il est utilisé pour définir éventuellement si un élément d' input doit avoir une valeur non vide. La directive est utile lors de la conception de la validation sur des formulaires HTML complexes.

HTML

<input type="checkbox" ng-model="someBooleanValue">
<input type="text" ng-model="username" ng-required="someBooleanValue">

ng-model-options

ng-model-options permet de modifier le comportement par défaut de ng-model , cette directive permet d'enregistrer des événements qui se déclencheront lorsque le modèle ng sera mis à jour et d'attacher un effet de rebond.

Cette directive accepte une expression qui évaluera un objet de définition ou une référence à une valeur de portée.

Exemple:

<input type="text" ng-model="myValue" ng-model-options="{'debounce': 500}">

L'exemple ci-dessus associera un effet myValue rebond de 500 millisecondes sur myValue , ce qui entraînera la mise à jour du modèle 500 ms après que l'utilisateur aura fini de taper sur l' input (c'est-à-dire lorsque la mise à jour de myValue terminée).

Propriétés d'objet disponibles

  1. updateOn : spécifie quel événement doit être lié à l'entrée

    ng-model-options="{ updateOn: 'blur'}" // will update on blur
    
  2. debounce : spécifie un délai de quelques millisecondes vers la mise à jour du modèle

    ng-model-options="{'debounce': 500}" // will update the model after 1/2 second
    
  3. allowInvalid : un indicateur booléen autorisant une valeur non valide pour le modèle, contournant la validation de formulaire par défaut, ces valeurs seraient par défaut traitées comme undefined .

  4. getterSetter : un indicateur booléen indiquant si le ng-model doit être traité comme une fonction getter / setter au lieu d'une valeur de modèle simple. La fonction va alors exécuter et renvoyer la valeur du modèle.

    Exemple:

    <input type="text" ng-model="myFunc" ng-model-options="{'getterSetter': true}">
    
    $scope.myFunc = function() {return "value";}
    
  5. timezone : définit le fuseau horaire du modèle si l'entrée est de la date ou de l' time . les types

ngCloak

La directive ngCloak est utilisée pour empêcher que le modèle HTML angulaire ne soit brièvement affiché par le navigateur dans sa forme brute (non compilée) pendant le chargement de votre application. - Voir la source

HTML

<div ng-cloak>
  <h1>Hello {{ name }}</h1>
</div>

ngCloak peut être appliqué à l'élément body, mais l'utilisation privilégiée consiste à appliquer plusieurs directives ngCloak à de petites parties de la page pour permettre un rendu progressif de la vue du navigateur.

La directive ngCloak n'a pas de paramètres.

Voir aussi: Prévention du scintillement

ngInclude

ng-include vous permet de déléguer le contrôle d'une partie de la page à un contrôleur spécifique. Vous pouvez le faire car la complexité de ce composant devient telle que vous souhaitez encapsuler toute la logique dans un contrôleur dédié.

Un exemple est:

  <div ng-include
       src="'/gridview'"
       ng-controller='gridController as gc'>
  </div>

Notez que le /gridview devra être servi par le serveur Web comme une URL distincte et légitime.

Notez également que l'attribut src accepte une expression angulaire. Cela pourrait être une variable ou un appel de fonction par exemple ou, comme dans cet exemple, une constante de chaîne. Dans ce cas, vous devez vous assurer d’ emballer l’URL source entre guillemets , afin qu’elle soit évaluée comme une constante de chaîne. C'est une source commune de confusion.

Dans le /gridview html, vous pouvez faire référence au gridController comme s’il était enroulé autour de la page, par exemple:

<div class="row">
  <button type="button" class="btn btn-default" ng-click="gc.doSomething()"></button>
</div>

ngSrc

Utiliser le balisage angulaire comme {{hash}} dans un attribut src ne fonctionne pas correctement. Le navigateur ira chercher l'URL avec le texte littéral {{hash}} jusqu'à ce que Angular remplace l'expression à l'intérieur de {{hash}} . ng-src directive ng-src remplace l'attribut src origine de l'élément tag image et résout le problème

<div ng-init="pic = 'pic_angular.jpg'">
    <h1>Angular</h1>
    <img ng-src="{{pic}}">
</div>

ngPattern

La directive ng-pattern accepte une expression qui évalue un modèle d'expression régulière et utilise ce modèle pour valider une entrée textuelle.

Exemple:

Disons que nous voulons qu'un élément <input> devienne valide lorsque sa valeur (ng-model) est une adresse IP valide.

Modèle:

<input type="text" ng-model="ipAddr" ng-pattern="ipRegex" name="ip" required>

Manette:

$scope.ipRegex = /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/;

ngValue

Généralement utilisé sous ng-repeat ngValue est utile lors de la génération dynamique de listes de boutons radio à l'aide de ngRepeat

<script>
   angular.module('valueExample', [])
     .controller('ExampleController', ['$scope', function($scope) {
       $scope.names = ['pizza', 'unicorns', 'robots'];
       $scope.my = { favorite: 'unicorns' };
     }]);
</script>
 <form ng-controller="ExampleController">
   <h2>Which is your favorite?</h2>
     <label ng-repeat="name in names" for="{{name}}">
       {{name}}
       <input type="radio"
              ng-model="my.favorite"
              ng-value="name"
              id="{{name}}"
              name="favorite">
     </label>
   <div>You chose {{my.favorite}}</div>
 </form>

Plnkr de travail

ngCopy

La directive ngCopy spécifie le comportement à exécuter sur un événement de copie.

Empêcher un utilisateur de copier des données

<p ng-copy="blockCopy($event)">This paragraph cannot be copied</p>

Dans le contrôleur

$scope.blockCopy = function(event) {
    event.preventDefault();
    console.log("Copying won't work");
}

ngPaste

La directive ngPaste spécifie un comportement personnalisé à exécuter lorsqu'un utilisateur colle du contenu

<input ng-paste="paste=true" ng-init="paste=false" placeholder='paste here'>
pasted: {{paste}}

ngHref

ngHref est utilisé à la place de l'attribut href, si nous avons des expressions angulaires à l'intérieur de la valeur href. La directive ngHref remplace l'attribut href d'origine d'une balise html en utilisant l'attribut href tel que tag, tag etc.

La directive ngHref s'assure que le lien n'est pas rompu même si l'utilisateur clique sur le lien avant qu'AngularJS n'ait évalué le code.

Exemple 1

<div ng-init="linkValue = 'http://stackoverflow.com'">
    <p>Go to <a ng-href="{{linkValue}}">{{linkValue}}</a>!</p>
</div>

Exemple 2 Cet exemple extrait dynamiquement la valeur href de la zone de saisie et la charge en tant que valeur href.

<input ng-model="value" />
<a id="link" ng-href="{{value}}">link</a>

Exemple 3

<script>
angular.module('angularDoc', [])
.controller('myController', function($scope) {
  // Set some scope value.
  // Here we set bootstrap version.
  $scope.bootstrap_version = '3.3.7';
   
  // Set the default layout value
  $scope.layout = 'normal';
});
</script>
<!-- Insert it into Angular Code -->
<link rel="stylesheet" ng-href="//maxcdn.bootstrapcdn.com/bootstrap/{{ bootstrap_version }}/css/bootstrap.min.css">
<link rel="stylesheet" ng-href="layout-{{ layout }}.css">

ngList

La directive ng-list est utilisée pour convertir une chaîne délimitée depuis une entrée de texte vers un tableau de chaînes ou inversement.

La directive ng-list utilise un délimiteur par défaut de ", " (espace virgule).

Vous pouvez définir le délimiteur manuellement en assignant à ng-list un délimiteur tel que ng-list="; " .

Dans ce cas, le délimiteur est défini sur un point-virgule suivi d'un espace.

Par défaut, ng-list a un attribut ng-trim qui est défini sur true. ng-trim quand faux, respectera l'espace blanc dans votre délimiteur. Par défaut, ng-list ne prend pas en compte les espaces blancs, sauf si vous définissez ng-trim="false" .

Exemple:

angular.module('test', [])
  .controller('ngListExample', ['$scope', function($scope) {
    $scope.list = ['angular', 'is', 'cool!'];
}]);

Un délimiteur de client est configuré pour être ; . Et le modèle de la zone de saisie est défini sur le tableau créé dans la portée.

  <body ng-app="test" ng-controller="ngListExample">
    <input ng-model="list" ng-list="; " ng-trim="false">
  </body>

La zone de saisie affiche le contenu: angular; is; cool!



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow