Heim > Web-Frontend > js-Tutorial > Warum löst „*ngClass' in Angular den Fehler „Eigenschaft „Entfernen' von undefiniert kann nicht gelesen werden' aus?

Warum löst „*ngClass' in Angular den Fehler „Eigenschaft „Entfernen' von undefiniert kann nicht gelesen werden' aus?

Linda Hamilton
Freigeben: 2024-12-13 12:20:26
Original
808 Leute haben es durchsucht

Why Does

Bedingte Klasse mit *ngClass in Angular

Angular bietet verschiedene Optionen, um CSS-Klassen bedingt auf HTML-Elemente anzuwenden. Eine gängige Methode ist die Verwendung der *ngClass-Direktive. Bei unsachgemäßer Verwendung kann es jedoch zu Fehlern wie „Die Eigenschaft ‚remove‘ von undefiniert kann nicht gelesen werden“ führen.

Problem:

Angesichts des folgenden Angular-Codes: Warum kommt folgender Fehler? tritt auf:

Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass
Nach dem Login kopieren
<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>
Nach dem Login kopieren

Lösung:

Der Fehler tritt aufgrund der Verwendung der ngClass-Direktive mit dem bedingten Ausdruck in Angular Version 2 auf . In Angular 2 verwendet die ngClass-Direktive ein Objekt als Argument, wobei die Schlüssel CSS-Klassennamen und die Werte boolesche Ausdrücke darstellen.

Um dieses Problem zu beheben, ersetzen Sie die *ngClass-Direktive durch eine der folgenden die folgenden von Angular bereitgestellten Methoden:

Typ Eins:

[class.active] = "step === 'step1'"
Nach dem Login kopieren

Typ Zwei:

[ngClass]="{active: step === 'step1'}"
Nach dem Login kopieren

Typ Drei:

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

Typ vier:

[ngClass]="step === 'step1' ? 'active' : 'inactive'"
Nach dem Login kopieren

Für mehrere Klassenbedingungen können Sie verwenden die Objektnotation, wie in Typ Zwei gezeigt. Weitere Informationen zur Verwendung von *ngClass.

finden Sie in der Angular-Dokumentation

Das obige ist der detaillierte Inhalt vonWarum löst „*ngClass' in Angular den Fehler „Eigenschaft „Entfernen' von undefiniert kann nicht gelesen werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage