Fermer

mars 16, 2021

Notions de base angulaires: Classes conditionnelles Angular ngClass


Cet article vous explique comment utiliser le style conditionnel dans Angular avec la directive ngClass et vous montre de nombreuses formes d'application – très utiles si vous vous lancez dans Angular.

Angular

Angular, le JavaScript de Google (TypeScript) Framework pour la création d'applications Web, mobiles ou de bureau, a plus de 71 000 étoiles sur GitHub. Il est géré par l'équipe Angular de Google et une multitude de membres de la communauté et d'organisations.

Avant de commencer

Pour pouvoir suivre la démonstration de cet article, vous devez avoir:

  • Un environnement de développement intégré comme VS Code
  • Node version 11.0 installée sur votre ordinateur
  • Node Package Manager version 6.7 ou supérieure (généralement livré avec l'installation Node)
  • Angular CLI version 8.0 ou supérieure
  • La ​​dernière version d'Angular
  • Téléchargez le projet de démarrage de ce tutoriel ici pour suivre les démonstrations
  • Décompressez le projet et initialisez les modules nœuds de votre terminal avec cette commande:
 npm   install 

Autre Les plus intéressants incluent:

  • Une connaissance pratique du framework Angular à un niveau débutant

Dans cet article, vous apprendrez à utiliser la directive ngClass pour le style conditionnel de vos éléments angulaires

Utilisation des classes CSS dans Angular

Pour styliser les éléments de votre composant Angular, vous pouvez simplement utiliser CSS dans le fichier component.css et définir tous vos styles. Vous pouvez également utiliser le CSS en ligne comme vous le feriez pour n'importe quelle page HTML. Le paragraphe ci-dessous a une classe verte:

 <p class =  "green" > Tous les cours pour débutants sont de couleur verte 

La feuille de style ressemblerait à ceci:

   .green   {
     couleur :  green ; 
} 

Mise en forme conditionnelle

La façon la plus simple d'expliquer le style conditionnel est le comportement de la souris – des choses comme focus, survol, sur clic et actif. Le processus de définition de règles dans votre feuille de style en fonction d'une condition prédéfinie (dans ce cas, le comportement de la souris) est appelé style conditionnel. Les exemples déjà mentionnés sont implémentés nativement en CSS à l'aide de pseudo-classes CSS du navigateur. Que se passe-t-il si vous souhaitez appliquer un style à un élément basé sur des conditions prédéfinies qui ne sont pas réservées nativement en tant que pseudo-classes CSS?

ngClass Conditional Styling

L'équipe Angular a livré la directive ngClass pour aider les développeurs à ajouter et supprimer des classes CSS sur des éléments HTML. Il y a trois façons d'utiliser la directive ngClass selon le type d'évaluation d'expression que vous voulez faire:

A. Dans une chaîne

Ici, les classes CSS sont répertoriées dans une chaîne et séparées par des espaces, comme vous le feriez sur n'importe quel élément HTML. La syntaxe ressemble à ceci:

 <some-element [ngClass] =  "'first second'" >  ... 

B. Dans un tableau

Tout comme la chaîne, vous listez ici les classes CSS dans un tableau. Voici à quoi ressemble la syntaxe:

 <some-element [ngClass] =  "['first', 'second']" >  ... 

C. Dans un objet

Vous pouvez également définir des classes à appliquer à un élément avec ngClass dans un objet. Les clés d'objet seront les classes CSS qui sont ajoutées lorsque l'expression donnée dans la valeur est évaluée à true, sinon elles sont supprimées. Voici à quoi ressemble la syntaxe:

  <some-element [ngClass] = " { 'class1 class2 class3'  :  true } " >  ... 

Démo

Si vous avez suivi ce post depuis le début, vous auriez téléchargé et décompressé le canevas Angular depuis GitHub. Voyons comment ceux-ci fonctionnent dans une véritable application Angular qui imprime et stylise les cours techniques dans un portail universitaire. Chargez l'application dans votre environnement de développement intégré (j'utilise VS Code), ouvrez le fichier app.component.html et nettoyez-le pour qu'il ressemble à ceci:

 < div   style  = " text-align :  center "  > 
   < h1 >   Bienvenue à la Ghetto Tech University  </  h1 > 
 </  div > 
 < App-courses >   </  App-courses > 
 < router-outlet >   </  router-outlet >  

Pour garder les choses modulaires, créons un nouveau composant et appelons il «cours». Dans votre terminal, exécutez cette commande ci-dessous:

 ng generate component cours

Ouvrez votre fichier courses.component.ts et remplacez le code par le bloc de code ci-dessous:

 import   { Component  OnInit  ]}   de   '@ angular / core' ; 
@  Composant  ( {
  sélecteur :   'app-courses' 
  templateUrl :   './ courses.component.html' 
  styleUrls :   [ './ courses.component.css' ] 
} ) 
 export   class   CoursesComponent   implements [19659089] OnInit   {
cours  =   [
     {
    'name' :   'Introduction to Web Development' 
    'level' :   ' Débutant '
 } 
  {
   ' nom ':  ' Understanding APIs '
   ' level ':  ' Intermediate '
 } 
  {
   ' name ':  ' Introduction to Docker Containers '
   ' level ':  ' Avancé '
 } 
  {
   ' name ':  ' Understanding Time complexities '
   ' level ':  ' Avancé '
 } 
  {
   ' name ':  ' Algorithms and Data Structures '
   ' level ':   'Advanced' 
 } 
  {
    'name' :   'My first HTML page' 
    'level' :  'Débutant
 } 
  {
    'name' :   'Ways to use CSS in your web page' 
    'level' : [19659074] 'Débutant' 
 } 
  {
    'nom' :   'Introduction aux tests unitaires' 
    'niveau' :   'Intermédiaire' 
 } 
  {
    'name' :   'What are PWAs' 
    'level' :   'Intermédiaire' 
 } 
 ] ; 
  constructeur  ()   { } 
  ngOnInit  ()   {
  } 
} 

Dans ce composant, j'ai créé un tableau d'objets de tous les cours techniques et de leurs différents niveaux pour le semestre. La prochaine étape consiste à définir les différents styles nécessaires à cet exercice. Ouvrez le fichier courses.component.css et collez les règles CSS ci-dessous à l'intérieur:

   .red   {
     color :  red  ]; 
} 
 .green   {
     couleur :  green ; 
} 
 .yellow   {
     color  ]:  blue ; 
} 
 .sizeup   { 
     font-size :   25  px ;  
} [19659015] Maintenant pour la présentation, allez dans le fichier courses.component.html et remplacez le contenu de l'espace réservé par le bloc de code ci-dessous à l'intérieur: 

 < p   class  =  " taille  " > 
   Tous  < span   [ngClass]  = "  ' green  ' " >  Les cours pour débutants sont de couleur verte  </  span > all  < span   class  =  " yellow "  >  intermédiaires sont colorés en bleu  </  span  >  
  et tous les  < span   class  =  " red "  >  cours avancés sont colorés en rouge  </  span > .
 </  p >  

Si vous exécutez l'application maintenant, vous verrez que tous les styles sont reflétés, y compris celui avec la directive ngClass .

 Ce paragraphe est affiché avec les couleurs correspondantes: Tous les cours pour débutants sont de couleur verte, tous les cours intermédiaires sont de couleur bleue et tous les cours avancés sont de couleur rouge.

En utilisant ce même code de présentation, voyons comment il se comportera si la définition est un tableau.

 < p   class  =  " sizeup "  > 
   All  < span   [ngClass]  =  " [ ' green ' ] "  > [19659229] Les cours pour débutants sont de couleur verte  </  span > all  < span   class  =  " yellow  " >  intermédiaire c les nôtres sont de couleur bleue  </  span >  
  et tous les  < span   class  =  " red "  >  cours avancés sont colorés en rouge  </  span > .
 </  p >  

Lorsque vous l'enregistrez et regardez votre navigateur, votre application reste la même, validant la définition du tableau. Maintenant, pour tester la définition de l'objet, commençons par le même exemple:

 < p   class  =  " sizeup "   > 
   Tous  < span   [ngClass]  =  " { ' green ' : true}  " >  Les cours pour débutants sont de couleur verte  </  span > all  < span   class [19659219] =  " jaune "  >  les cours intermédiaires sont colorés en bleu  </  span >  
  et tous les  < span   class  =  " red "  >  cours avancés sont colorés en rouge  </  span > .
 </  p >  

Ceci imprime les paragraphes avec les différentes couleurs attribuées. Pour rendre cela encore plus excitant, référençons maintenant les cours que nous avons sauvegardés au début:

 < p   class  =  " sizeup "  [19659025]> 
   Tous  < span   [ngClass]  =  " { ' green ' : true }  " >  Les cours pour débutants sont de couleur verte  </  span > all  < span   class  =  " jaune "  >  les cours intermédiaires sont colorés en bleu  </  span >  
  et tous les  < span   class  =  " red "  >  cours avancés sont colorés en rouge  </  span > .
 </  p > 
 < ul > 
   < li   * ngFor  =  " cours de cours "  
   [ngClass]  =  " { ' green ' : course.level ===  ' Débutant  »,
              ' jaune ' : course.level ===  ' Intermédiaire ' ,
              ' rouge ' : course.level ===  ' Advanced ' ,
              ' taille ' : true}  " > 
   {{course.name}}
     </  li > 
 </  ul >  

Ici, nous avons utilisé la directive ngFor pour parcourir la liste puis avec le ngClass nous avons spécifié exactement que tous les cours doivent être colorés selon nos conditions prédéfinies (cours pour débutants en vert, intermédiaires en bleu et cours avancés en rouge). Cela a été possible car la clé d'objet est de type booléen, donc tout ce qui se trouve sur le côté droit doit retourner vrai ou faux. Le style est appliqué s'il est vrai, et ne s'applique pas lorsqu'il renvoie faux.

 Le même paragraphe que ci-dessus, maintenant avec une liste de cours affichés en vert, bleu ou rouge en fonction de leur niveau.

Le code complet de ceci le tutoriel peut être trouvé ici sur GitHub.

Conclusion

Ceci est un cas d'utilisation de la directive ngClass . Il peut être utilisé dans de nombreux scénarios, en particulier ceux qui nécessitent le style d'un élément en fonction d'une logique prédéfinie. Cet article vous a présenté le monde du style conditionnel avec ngClass dans Angular. Allez-y et utilisez-le!




Source link