Rumah > hujung hadapan web > tutorial js > Mengapakah '*ngClass' dalam Sudut Melemparkan Ralat 'Tidak dapat membaca sifat 'membuang' undefined'?

Mengapakah '*ngClass' dalam Sudut Melemparkan Ralat 'Tidak dapat membaca sifat 'membuang' undefined'?

Linda Hamilton
Lepaskan: 2024-12-13 12:20:26
asal
928 orang telah melayarinya

Why Does

Kelas Bersyarat dengan *ngClass dalam Sudut

Angular menyediakan pelbagai pilihan untuk menggunakan kelas CSS secara bersyarat pada elemen HTML. Satu kaedah biasa ialah menggunakan arahan *ngClass. Walau bagaimanapun, jika tidak digunakan dengan betul, ia boleh membawa kepada ralat seperti "Tidak boleh membaca sifat 'alih keluar' yang tidak ditentukan."

Masalah:

Memandangkan kod Sudut di bawah, mengapa ralat berikut berlaku:

Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass
Salin selepas log masuk
<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>
Salin selepas log masuk

Penyelesaian:

Ralat berlaku disebabkan penggunaan arahan ngClass dengan ungkapan bersyarat dalam versi Angular 2 . Dalam Angular 2 , arahan ngClass mengambil objek sebagai hujah, dengan kekunci mewakili nama kelas CSS dan nilai mewakili ungkapan boolean.

Untuk menyelesaikan isu ini, gantikan arahan *ngClass dengan mana-mana kaedah berikut disediakan oleh Angular:

Jenis Satu:

[class.active] = "step === 'step1'"
Salin selepas log masuk

Jenis Dua:

[ngClass]="{active: step === 'step1'}"
Salin selepas log masuk

Jenis Tiga:

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

Jenis Empat:

[ngClass]="step === 'step1' ? 'active' : 'inactive'"
Salin selepas log masuk

Untuk berbilang keadaan kelas, anda boleh menggunakan notasi objek seperti yang ditunjukkan dalam Jenis Dua. Rujuk dokumentasi Angular untuk mendapatkan butiran lanjut tentang menggunakan *ngClass.

Atas ialah kandungan terperinci Mengapakah '*ngClass' dalam Sudut Melemparkan Ralat 'Tidak dapat membaca sifat 'membuang' undefined'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan