Saya memiliki templat yang mengikat yang menampilkan atribut model yang disebut 'tanggal' yang merupakan tanggal, menggunakan filter tanggal Angular.
<span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span>
Sejauh ini baik. Namun saat ini, jika tidak ada nilai di bidang tanggal, pengikatan tidak menampilkan apa pun. Namun, saya ingin menampilkan string 'Beragam' jika tidak ada tanggal.
Saya bisa mendapatkan logika dasar menggunakan operator biner:
<span class="gallery-date">{{gallery.date || 'Various'}}</span>
Namun saya tidak dapat membuatnya berfungsi dengan filter tanggal:
<span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span>
Bagaimana saya bisa menggunakan operator biner di samping filter tanggal?
{{(gallery.date | date:'mediumDate') || "0"}}
Saya membuat filter berikut:
Untuk digunakan seperti ini:
sumber
if (angular.isUndefined(defaultValue) || ... )
pernyataan di dalam pernyataan yang ada, di manadefString
filter mengembalikan string "default
" (yang lain mungkin akan muncul nanti). Ini memungkinkan saya untuk menggunakannya sebagai<span>{{expected.string | defString}}</span>
dan mendapatkandefault
sebagai tingkat fallback akhir.Kalau-kalau Anda ingin mencoba sesuatu yang lain. Inilah yang bekerja untuk saya:
Berdasarkan pada Operator Ternary yang memiliki struktur sebagai berikut:
Sebagai hasil:
sumber
Bagaimana saya bisa menggunakan operator biner di samping filter tanggal?
Anda juga mencoba:
sumber
Saya sangat menyukai jawaban ini, dengan ngBind, teks default Anda hanya dapat hidup di badan elemen, dan kemudian jika ngBind mengevaluasi sesuatu yang bukan nol / tidak terdefinisi, konten Anda diganti secara otomatis, dan semuanya bahagia
angularjs mengatur nilai default untuk ditampilkan sebelum evaluasi
sumber
Di cshtml Anda,
Di File JS Anda, mungkin app.js,
Di luar app.controller, tambahkan filter di bawah ini.
Di sini "tanggal saya" adalah fungsi yang Anda panggil untuk menguraikan tanggal. Di sini "app" adalah variabel yang berisi angular.module
sumber