Maison >interface Web >js tutoriel >Pourquoi '*ngClass' dans Angular génère-t-il une erreur 'Impossible de lire la propriété 'supprimer' un élément non défini' ?

Pourquoi '*ngClass' dans Angular génère-t-il une erreur 'Impossible de lire la propriété 'supprimer' un élément non défini' ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 12:20:26807parcourir

Why Does

Classe conditionnelle avec *ngClass dans Angular

Angular fournit diverses options pour appliquer conditionnellement des classes CSS aux éléments HTML. Une méthode courante consiste à utiliser la directive *ngClass. Cependant, s'il n'est pas utilisé correctement, il peut entraîner des erreurs telles que "Impossible de lire la propriété 'supprimer' d'undéfini."

Problème :

Étant donné le code angulaire ci-dessous, pourquoi l'erreur suivante se produisant :

Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass
<ol>
  <li *ngClass="{active: step==='step1'}" (click)="step='step1'">Step1</li>
  <li *ngClass="{active: step==='step2'}" (click)="step='step2'">Step2</li>
  <li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li>
</ol>

Solution :

L'erreur se produit en raison de l'utilisation de la directive ngClass avec l'expression conditionnelle dans la version angulaire 2 . Dans Angular 2, la directive ngClass prend un objet comme argument, où les clés représentent les noms de classes CSS et les valeurs représentent des expressions booléennes.

Pour résoudre ce problème, remplacez la directive *ngClass par l'un des les méthodes suivantes fournies par Angular :

Type Un :

[class.active] = "step === 'step1'"

Type deux :

[ngClass]="{active: step === 'step1'}"

Type trois :

[ngClass]="{1: 'active', 2: 'step2', 3: 'step3'}[step]"

Type quatre :

[ngClass]="step === 'step1' ? 'active' : 'inactive'"

Pour plusieurs conditions de classe, vous pouvez utiliser la notation d'objet comme indiqué dans le type deux. Reportez-vous à la documentation Angular pour plus de détails sur l'utilisation de *ngClass.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn