Dapatkah saya menggunakan konstruksi if-then-else (terner-operator) dalam ekspresi angularjs, misalnya saya memiliki fungsi $ scope.isExists (item) yang harus mengembalikan nilai bool. Saya ingin sesuatu seperti ini,
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Saya tahu bahwa saya dapat menggunakan fungsi yang mengembalikan string, saya tertarik pada kemungkinan menggunakan konstruksi if-then-else ke dalam ekspresi. Terima kasih.
ng-switch
Jawaban:
Ekspresi sudut tidak mendukung operator terner sebelum 1.1.5, tetapi dapat diemulasikan seperti ini:
Misalnya, sesuatu seperti ini akan berhasil:
UPDATE: Angular 1.1.5 menambahkan dukungan untuk operator terner:
sumber
<
dan>
sebagai operator pembanding?Anda dapat menggunakan operator terner sejak versi 1.1.5 dan yang lebih baru seperti yang ditunjukkan di alat pemukul kecil ini (contoh di 1.1.5):
Untuk alasan sejarah (mungkin plnkr.co turun karena alasan tertentu di masa mendatang) berikut adalah kode utama dari contoh saya:
sumber
{{true?true:false}}
Anda dapat dengan mudah menggunakan ng-show seperti:
Untuk pengujian yang lebih kompleks, Anda bisa menggunakan pernyataan ng-switch:
sumber
Ini bisa dilakukan dalam satu baris.
Penggunaan dalam
td
tag:sumber