Saya ingin melakukannya:
ng-hide="!globals.isAdmin && mapping.is_default"
tetapi ekspresi selalu mengevaluasi untuk false
.
Saya tidak ingin mendefinisikan fungsi khusus $scope
.
Saya ingin melakukannya:
ng-hide="!globals.isAdmin && mapping.is_default"
tetapi ekspresi selalu mengevaluasi untuk false
.
Saya tidak ingin mendefinisikan fungsi khusus $scope
.
Jawaban:
Gunakan metode pengontrol jika Anda perlu menjalankan kode JavaScript sewenang-wenang, atau Anda dapat menentukan filter yang mengembalikan benar atau salah.
Saya baru saja menguji (seharusnya melakukan itu dulu), dan sesuatu seperti ng-show="!a && b"
bekerja seperti yang diharapkan.
ng-show
Saya ng-hide
hanya menerima boolean
nilai.
Untuk ekspresi kompleks, sebaiknya gunakan pengontrol dan cakupan untuk menghindari komplikasi.
Di bawah ini akan bekerja (Ini bukan ekspresi yang sangat kompleks)
ng-show="User=='admin' || User=='teacher'"
Elemen di sini akan ditampilkan di UI ketika salah satu dari kedua kondisi mengembalikan true (operasi ATAU).
Seperti ini, Anda dapat menggunakan ekspresi apa pun.
Ini akan berhasil jika Anda tidak memiliki terlalu banyak ekspresi.
Contoh: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Untuk ekspresi yang lebih banyak dari ini gunakan controller.
This will work if you do not have too many expressions.
walaupun saya setuju bahwa itu harus dilakukan di controller.
Saya biasanya mencoba untuk menghindari ekspresi dengan ng-show dan ng-hide karena mereka dirancang sebagai boolean, bukan conditional. Jika saya membutuhkan logika kondisional dan boolean, saya lebih suka memasukkan logika kondisional menggunakan ng-if sebagai pemeriksaan pertama, kemudian menambahkan cek tambahan untuk logika boolean dengan ng-show dan ng-hide
Namun, jika Anda ingin menggunakan kondisional untuk ng-show atau ng-hide, berikut ini tautan dengan beberapa contoh: Tampilan Bersyarat menggunakan ng-if, ng-show, ng-hide, ng-sembunyikan, ng-include, ng-switch
Beberapa jawaban di atas tidak bekerja untuk saya tetapi ini berhasil. Kalau-kalau ada orang lain yang memiliki masalah yang sama.
ng-show="column != 'vendorid' && column !='billingMonth'"
false
, Anda mungkin ingin memeriksa ulang nilai-nilai itu. Mungkin saja objek "global" dan / atau "pemetaan"undefined