Bagaimanakah Saya Boleh Memaparkan Kandungan Berbeza Berdasarkan Objek Tiada dan Nilai Harta dalam Templat Go?

Barbara Streisand
Lepaskan: 2024-11-21 06:44:09
asal
554 orang telah melayarinya

How Can I Display Different Content Based on a Nil Object and Property Values in Go Templates?

Membenarkan Nilai Nil dalam Keadaan Templat

Apabila bekerja dengan templat Go, anda mungkin menghadapi senario di mana anda ingin memaparkan kandungan lalai jika objek adalah sifar, tetapi tunjukkan kandungan yang berbeza jika sifat tertentu ditetapkan. Walaupun mungkin untuk menggunakan struct tanpa nama, ini boleh memperkenalkan boilerplate yang tidak diperlukan.

Penyelesaian Serbaguna

Untuk menyelesaikan isu ini dengan elegan, pertimbangkan pendekatan berikut:

Templat Kod

{{if not .}}
   // default content
{{else if eq .MetaValue "some-x"}}
   // some-x case
{{else}}
   // other case
{{end}}
Salin selepas log masuk

Penjelasan

Kod templat ini menilai ungkapan berikut mengikut susunan:

  1. {{ jika tidak .}}: Menyemak sama ada objek itu kosong atau sebaliknya kosong (termasuk palsu, 0, kosong tatasusunan/kepingan/peta, atau rentetan kosong). Jika ya, kandungan lalai dipaparkan.
  2. {{else if eq .MetaValue "some-x"}}: Semak sama ada objek mempunyai sifat MetaValue yang ditetapkan kepada "some- x". Jika ya, kandungan khusus untuk sifat itu dipaparkan.
  3. {{else}}: Jika kedua-dua syarat sebelum ini tidak dipenuhi, sebarang kandungan yang tinggal boleh dipaparkan.

Dengan menggunakan operator not dan bukannya eq . nil, pendekatan ini mengendalikan semua senario yang mungkin, termasuk situasi di mana objek adalah sifar, kosong atau mempunyai nilai selain daripada sifar. Ini menghapuskan keperluan untuk semakan nil yang jelas atau pengenalan struct tanpa nama yang tidak perlu, memastikan templat anda bersih dan ringkas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Kandungan Berbeza Berdasarkan Objek Tiada dan Nilai Harta dalam Templat Go?. 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