Skip to content

Apprenez toutes les fonctionnalités disponibles dans ngIf, apprenez la meilleure façon de l'utiliser pour consommer des Observables, évitez un anti-modèle commun.

License

Notifications You must be signed in to change notification settings

camara94/comprendre-ngif-angular

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Angular ngIf : Guide completomprendre-ngif-angular

Apprenez toutes les fonctionnalités disponibles dans ngIf, apprenez la meilleure façon de l'utiliser pour consommer des Observables, évitez un anti-modèle commun.

Résumé de NgIf

Dans cet article, nous allons couvrir toutes les fonctionnalités dont nous disposons pour utiliser la directive principale Angular ngIf.

Outre les fonctionnalités les plus couramment utilisées, nous allons apprendre à éviter un anti-pattern ngIf potentiel que nous pourrions rencontrer tout en développant des écrans d'interface utilisateur plus complexes qui consomment beaucoup de données observables provenant de différentes sources (backend, services observables, magasins , etc.).

Table des matières

Dans cet article, nous aborderons les sujets suivants :

  • Qu'est-ce qu'Angular ngIf ?
  • Comment ngIf se compare-t-il au masquage d'éléments à l'aide de CSS ?
  • Quel type d'expressions ngIf peut-il accepter ?
  • La syntaxe ngIf else
  • La syntaxe ngIf if then else
  • Consommer des données observables avec ngIf et le async pipe
  • Un potential anti-pattern potentiel lors de la consommation de données observables avec ngIf
  • Le modèle Single Data Observable
  • Comment ngIf fonctionne-t-il sous le capot ?
  • Résumé

Cet article est la traduction la série en cours sur les fonctionnalités d'Angular Core, vous pouvez trouver tous les articles disponibles ici.

Alors sans plus tarder, commençons à apprendre tout ce que nous devons savoir sur Angular ngIf !

Qu'est-ce qu'Angular ngIf ?

Même si HTML est aussi un langage de programmation à part entière, il n'a pas d'instruction if, contrairement par exemple à Javascript.

La directive Angular ngIf fonctionne essentiellement comme une instruction if pour HTML, ajoutant cette fonctionnalité manquante au langage sous la forme de l'attribut spécial ngIf.

La directive Angular ngIf fonctionne essentiellement comme une instruction if pour HTML, ajoutant cette fonctionnalité manquante au langage sous la forme de l'attribut spécial ngIf.

Nous devons passer une condition à ngIf, pour que cela fonctionne. Voici quelques exemples:

ngif

Dans cet exemple, le container div ne sera affiché que si la variable nom est défini , sinon tout le contenu du div ne sera pas visible.

Et si je n'ai aucun endroit pratique pour appliquer ngIf ?

Dans le cas des éléments container, s'il n'y a pas de container disponible pour la section que nous voulons afficher ou masquer, nous n'avons pas besoin de créer un container div juste pour pouvoir appliquer ngIf.

Au lieu de cela, nous pouvons appliquer ngIf au-dessus de la directive ng-container. Cela affichera ou masquera le contenu de ng-container, sans avoir à créer un div supplémentaire juste pour cela :

ng-container

Comment ngIf se compare-t-il au masquage d'éléments à l'aide de CSS ?

Même si HTML n'a pas d'instruction if intégrée, il existe des moyens de masquer des parties de la page avec simplement du CSS, en utilisant la propriété display et visibility.

Nous pouvons facilement ajouter ou supprimer ces attributs CSS à un élément HTML en utilisant Javascript et hide un élément de la page. Mais ce n'est pas la même chose que d'utiliser ngIf.

Avec ngIf, si un élément est caché, cet élément n'existe pas du tout dans la page.

Cela signifie que si vous inspectez la page à l'aide par exemple des outils de développement Chrome, vous ne trouverez aucun élément HTML présent dans le DOM.

Au lieu de cela, vous trouverez un commentaire HTML d'aspect étrange similaire à celui-ci, où la directive ngIf a été appliquée : hide

Ce commentaire est là uniquement à des fins de débogage, pour aider à identifier où l'élément manquant aurait dû être placé au cas où il était visible.

Ceci est très différent du comportement des propriétés CSS display ou de visibility. Par exemple, si nous définissons la propriété display sur la valeur none, l'élément HTML sera masqué.

Mais si on inspecte la page avec les Dev Tools, on verra que les éléments DOM sont toujours là présents sur la page, c'est juste qu'ils ne sont pas visibles : display

Avec la propriété display CSS défini sur hiden, quelque chose de très similaire se produirait. L'élément HTML serait caché à l'utilisateur, mais toujours présent sur la page lors de l'inspection avec Dev Tools.

Avec une hidden visibility, l'élément occupera toujours un espace vide sur la page, même si l'élément est masqué. Ceci est différent de l'utilisation de display:none, où aucun espace sur la page n'est occupé.

Mais dans les deux cas, avec CSS, les éléments sont toujours présents dans le DOM, consommant des ressources aussi petites soient-elles, contrairement à ngIf où les éléments cachés n'existent tout simplement pas.

En général, lors de la création d'applications angulaires, nous devrions toujours préférer masquer les éléments à l'aide de ngIf au lieu d'utiliser du CSS simple.

Quel type d'expressions ngIf peut-il accepter ?

La directive ngIf peut prendre en entrée n'importe quelle expression Typescript valide et pas seulement un booléen. La véracité de l'expression va ensuite être évaluée, pour déterminer si l'élément doit être affiché ou non.

Outre les booléens, nous pouvons également transmettre à ngIf par exemple des chaînes, des tableaux, des objets, etc. Voici quelques exemples de ce qui se passerait si nous passions d'autres types primitifs à ngIf : expression Et voici d'autres exemples de transmission de tableaux et d'objets à ngIf : con

The ngIf else syntax

Si nous pouvions utiliser une syntaxe if en HTML, nous aurons également besoin d'une clause else, tout comme en Javascript, nous avons l'instruction if-else.

Dans Angular, nous pouvons utiliser la syntaxe ngIf else, de la manière suivante : ifelse

About

Apprenez toutes les fonctionnalités disponibles dans ngIf, apprenez la meilleure façon de l'utiliser pour consommer des Observables, évitez un anti-modèle commun.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published