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
808 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!

sumber:php.cn
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