Dengan AngularJS
saya menggunakan ng-class
cara berikut:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/>
Saya ingin tahu apakah saya dapat menggunakan if-else
ekspresi untuk melakukan sesuatu yang mirip dengan ini:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/>
Jadi, setiap kali call.State
berbeda dari first
atau second
menggunakan classC
dan menghindari menentukan setiap nilai?
ng-class="{'class1': ##condition1## , 'class2': ##condition2## }"
seperti yang Anda lihat dalam pertanyaan di atasAnda dapat mencoba dengan menggunakan fungsi seperti itu:
Kemudian masukkan logika Anda ke dalam fungsi itu sendiri:
Saya membuat biola dengan contoh: http://jsfiddle.net/DotDotDot/nMk6M/
sumber
Saya memiliki situasi di mana saya membutuhkan dua pernyataan 'jika' yang bisa menjadi kenyataan dan 'yang lain' atau default jika tidak ada yang benar, tidak yakin apakah ini merupakan perbaikan pada jawaban Jossef tetapi tampaknya lebih bersih bagi saya:
Di mana value.one dan value.two benar, mereka mengambil preseden atas kelas .else
sumber
Jelas ! Kita dapat membuat fungsi untuk mengembalikan nama kelas CSS dengan contoh lengkap berikut.
CSS
JS
Lalu
Anda dapat merujuk ke halaman kode lengkap di kelas ng misalnya
sumber
Solusi di atas tidak berhasil bagi saya untuk kelas dengan gambar latar belakang entah bagaimana. Apa yang saya lakukan adalah saya membuat kelas default (yang Anda butuhkan di tempat lain) dan mengatur class = 'defaultClass' dan kemudian ng-class = "{class1: abc, class2: xyz}"
PS: Kelas-kelas yang berada dalam kondisi harus menimpa kelas default yaitu ditandai sebagai! Penting
sumber
Ini adalah cara terbaik dan dapat diandalkan untuk melakukan ini. Berikut adalah contoh sederhana dan setelah itu Anda dapat mengembangkan logika khusus Anda:
sumber
Solusi saya adalah memanipulasi variabel model hanya untuk toggling ng-class:
Sebagai contoh, saya ingin beralih kelas sesuai dengan keadaan daftar saya:
1) Setiap kali daftar saya kosong, saya memperbarui model saya:
2) Setiap kali daftar saya tidak kosong, saya menetapkan negara lain
3) Ketika daftar saya tidak pernah disentuh, saya ingin memberikan kelas lain (di sinilah halaman dimulai):
3) Saya menggunakan model tambahan ini di kelas ng:
sumber
Gunakan seperti ini:
sumber
Anda dapat mencoba metode ini:
Anda bisa mendapatkan detail lengkap dari sini .
sumber