Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Directives d'Attribut dans Angular | Mastering Angular Directives and Pipes
Introduction à Angular

bookDirectives d'Attribut dans Angular

Dans Angular, les directives d'attribut jouent un rôle clé en modifiant dynamiquement le comportement et l'apparence des éléments sans altérer la structure du DOM. Deux des directives d'attribut les plus couramment utilisées sont ngClass et ngStyle. Ces directives offrent des moyens flexibles de contrôler les styles des éléments et les classes CSS en fonction de l'état du composant.

Qu'est-ce que ngClass ?

Note
Définition

La directive ngClass permet d'ajouter ou de supprimer dynamiquement des classes CSS sur un élément en fonction de conditions.

Ceci est particulièrement utile lorsque vous souhaitez modifier l'apparence d'un élément en réponse à des changements de données — par exemple, mettre en surbrillance un élément actif ou appliquer des styles en fonction du statut.

ngClass prend en charge la syntaxe objet, les tableaux de chaînes de caractères et les fonctions qui retournent ces formats pour appliquer dynamiquement des classes.

Syntaxe Objet

Utilisez un objet où les clés sont les noms de classes et les valeurs sont des conditions booléennes. Si la condition est true, la classe est appliquée.

component.html

component.html

component.ts

component.ts

copy

Dans cet exemple, des classes sont ajoutées ou supprimées en fonction de la valeur de la propriété isActive dans le composant.

Si isActive est true, la classe active est ajoutée et inactive est supprimée. Si isActive est false, c'est l'inverse.

Tableau de chaînes de caractères

Utiliser un tableau où chaque chaîne de caractères représente un nom de classe CSS qui sera ajouté à l’élément. Cette approche est utile lorsque vous souhaitez appliquer plusieurs classes dynamiquement sans conditions.

component.html

component.html

copy

Ici, les classes répertoriées dans le tableau sont appliquées à l’élément.

L’utilisation d’un tableau est utile lorsque vous souhaitez attribuer dynamiquement plusieurs classes — en particulier lorsque le nombre de classes peut varier.

Fonction

Utiliser une fonction qui retourne l’un des formats pris en charge : un objet, un tableau de chaînes de caractères, ou une chaîne de caractères unique. Ceci est utile lorsque les classes appliquées dépendent d’une logique plus complexe ou de conditions dynamiques.

component.html

component.html

component.ts

component.ts

copy

ngClass peut également accepter une fonction qui retourne un objet, un tableau ou une chaîne selon la logique que vous définissez.

Dans ce cas, la méthode getClass() retourne un objet dont les clés sont les noms des classes CSS et les valeurs sont des conditions booléennes.

  • Si isError est true, la classe error-class sera appliquée ;
  • Si isSuccess est true, la classe success-class sera appliquée ;
  • Si les deux sont false, aucune classe ne sera ajoutée.

Qu'est-ce que ngStyle ?

Note
Définition

ngStyle applique dynamiquement des styles en ligne aux éléments, vous permettant de contrôler leur apparence directement à partir des données du composant en fonction de son état.

Avec ngStyle, il est possible de modifier des propriétés telles que la couleur de fond, la police, la taille, le positionnement, et bien d'autres — directement depuis le composant.

Fonctionnement de ngStyle

ngStyle accepte un objet dont les clés correspondent aux noms des propriétés CSS et les valeurs à des expressions évaluées lors du rendu.

Si une expression retourne une valeur, celle-ci est appliquée à la propriété CSS correspondante de l’élément.

Exemple avec un objet de styles

Dans cet exemple, la couleur du texte et la taille de la police de l’élément sont modifiées dynamiquement :

component.html

component.html

component.ts

component.ts

copy

Si textColor est red et fontSize est 20px, ces styles seront appliqués à l’élément. Cette méthode permet de combiner facilement plusieurs styles dans une seule expression pour une plus grande flexibilité.

Exemple utilisant une variable et une expression

Si vous devez appliquer des styles en fonction d'une logique, vous pouvez utiliser des expressions directement dans le template :

component.html

component.html

component.ts

component.ts

copy

Si isActive est true, la couleur de fond sera verte ; si c'est false, elle sera rouge. Ici, un opérateur ternaire est utilisé pour rendre la logique concise et expressive.

Exemple avec une valeur dynamique

Les expressions dans ngStyle peuvent également être basées sur des méthodes. Vous pouvez utiliser des méthodes du composant pour calculer dynamiquement les valeurs de style :

component.html

component.html

component.ts

component.ts

copy

Dans cet exemple, la méthode getDynamicStyle() retourne un objet de style basé sur la valeur actuelle de isDarkMode.

Cela est particulièrement utile lorsque les styles dépendent de conditions externes telles que les préférences de l'utilisateur, l'heure de la journée ou les thèmes de l'application.

Quand utiliser ngClass ou ngStyle ?

  • Utiliser ngClass lors de l'utilisation de classes CSS prédéfinies. Ceci est idéal lorsque les styles sont réutilisés à plusieurs endroits et que vous souhaitez un contrôle centralisé du style via votre feuille de style ;

  • Utiliser ngStyle lorsque vous devez appliquer des styles de manière dynamique et directe — par exemple, pour définir des couleurs, des dimensions ou d'autres propriétés visuelles qui ne sont pas liées à des classes réutilisables.

En combinant ngClass et ngStyle, il est possible de contrôler facilement et efficacement l'apparence et le comportement des éléments en fonction des données du composant — sans avoir à mettre à jour manuellement le DOM.

1. Quel est le but de la directive ngClass dans Angular ?

2. Quelle directive utiliseriez-vous pour appliquer conditionnellement plusieurs styles en ligne dans Angular ?

question mark

Quel est le but de la directive ngClass dans Angular ?

Select the correct answer

question mark

Quelle directive utiliseriez-vous pour appliquer conditionnellement plusieurs styles en ligne dans Angular ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 3.13

bookDirectives d'Attribut dans Angular

Glissez pour afficher le menu

Dans Angular, les directives d'attribut jouent un rôle clé en modifiant dynamiquement le comportement et l'apparence des éléments sans altérer la structure du DOM. Deux des directives d'attribut les plus couramment utilisées sont ngClass et ngStyle. Ces directives offrent des moyens flexibles de contrôler les styles des éléments et les classes CSS en fonction de l'état du composant.

Qu'est-ce que ngClass ?

Note
Définition

La directive ngClass permet d'ajouter ou de supprimer dynamiquement des classes CSS sur un élément en fonction de conditions.

Ceci est particulièrement utile lorsque vous souhaitez modifier l'apparence d'un élément en réponse à des changements de données — par exemple, mettre en surbrillance un élément actif ou appliquer des styles en fonction du statut.

ngClass prend en charge la syntaxe objet, les tableaux de chaînes de caractères et les fonctions qui retournent ces formats pour appliquer dynamiquement des classes.

Syntaxe Objet

Utilisez un objet où les clés sont les noms de classes et les valeurs sont des conditions booléennes. Si la condition est true, la classe est appliquée.

component.html

component.html

component.ts

component.ts

copy

Dans cet exemple, des classes sont ajoutées ou supprimées en fonction de la valeur de la propriété isActive dans le composant.

Si isActive est true, la classe active est ajoutée et inactive est supprimée. Si isActive est false, c'est l'inverse.

Tableau de chaînes de caractères

Utiliser un tableau où chaque chaîne de caractères représente un nom de classe CSS qui sera ajouté à l’élément. Cette approche est utile lorsque vous souhaitez appliquer plusieurs classes dynamiquement sans conditions.

component.html

component.html

copy

Ici, les classes répertoriées dans le tableau sont appliquées à l’élément.

L’utilisation d’un tableau est utile lorsque vous souhaitez attribuer dynamiquement plusieurs classes — en particulier lorsque le nombre de classes peut varier.

Fonction

Utiliser une fonction qui retourne l’un des formats pris en charge : un objet, un tableau de chaînes de caractères, ou une chaîne de caractères unique. Ceci est utile lorsque les classes appliquées dépendent d’une logique plus complexe ou de conditions dynamiques.

component.html

component.html

component.ts

component.ts

copy

ngClass peut également accepter une fonction qui retourne un objet, un tableau ou une chaîne selon la logique que vous définissez.

Dans ce cas, la méthode getClass() retourne un objet dont les clés sont les noms des classes CSS et les valeurs sont des conditions booléennes.

  • Si isError est true, la classe error-class sera appliquée ;
  • Si isSuccess est true, la classe success-class sera appliquée ;
  • Si les deux sont false, aucune classe ne sera ajoutée.

Qu'est-ce que ngStyle ?

Note
Définition

ngStyle applique dynamiquement des styles en ligne aux éléments, vous permettant de contrôler leur apparence directement à partir des données du composant en fonction de son état.

Avec ngStyle, il est possible de modifier des propriétés telles que la couleur de fond, la police, la taille, le positionnement, et bien d'autres — directement depuis le composant.

Fonctionnement de ngStyle

ngStyle accepte un objet dont les clés correspondent aux noms des propriétés CSS et les valeurs à des expressions évaluées lors du rendu.

Si une expression retourne une valeur, celle-ci est appliquée à la propriété CSS correspondante de l’élément.

Exemple avec un objet de styles

Dans cet exemple, la couleur du texte et la taille de la police de l’élément sont modifiées dynamiquement :

component.html

component.html

component.ts

component.ts

copy

Si textColor est red et fontSize est 20px, ces styles seront appliqués à l’élément. Cette méthode permet de combiner facilement plusieurs styles dans une seule expression pour une plus grande flexibilité.

Exemple utilisant une variable et une expression

Si vous devez appliquer des styles en fonction d'une logique, vous pouvez utiliser des expressions directement dans le template :

component.html

component.html

component.ts

component.ts

copy

Si isActive est true, la couleur de fond sera verte ; si c'est false, elle sera rouge. Ici, un opérateur ternaire est utilisé pour rendre la logique concise et expressive.

Exemple avec une valeur dynamique

Les expressions dans ngStyle peuvent également être basées sur des méthodes. Vous pouvez utiliser des méthodes du composant pour calculer dynamiquement les valeurs de style :

component.html

component.html

component.ts

component.ts

copy

Dans cet exemple, la méthode getDynamicStyle() retourne un objet de style basé sur la valeur actuelle de isDarkMode.

Cela est particulièrement utile lorsque les styles dépendent de conditions externes telles que les préférences de l'utilisateur, l'heure de la journée ou les thèmes de l'application.

Quand utiliser ngClass ou ngStyle ?

  • Utiliser ngClass lors de l'utilisation de classes CSS prédéfinies. Ceci est idéal lorsque les styles sont réutilisés à plusieurs endroits et que vous souhaitez un contrôle centralisé du style via votre feuille de style ;

  • Utiliser ngStyle lorsque vous devez appliquer des styles de manière dynamique et directe — par exemple, pour définir des couleurs, des dimensions ou d'autres propriétés visuelles qui ne sont pas liées à des classes réutilisables.

En combinant ngClass et ngStyle, il est possible de contrôler facilement et efficacement l'apparence et le comportement des éléments en fonction des données du composant — sans avoir à mettre à jour manuellement le DOM.

1. Quel est le but de la directive ngClass dans Angular ?

2. Quelle directive utiliseriez-vous pour appliquer conditionnellement plusieurs styles en ligne dans Angular ?

question mark

Quel est le but de la directive ngClass dans Angular ?

Select the correct answer

question mark

Quelle directive utiliseriez-vous pour appliquer conditionnellement plusieurs styles en ligne dans Angular ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
some-alt