Rumah > pembangunan bahagian belakang > Golang > Mengapa komen HTML tidak dipaparkan dalam templat Go dan bagaimana saya boleh membetulkannya?

Mengapa komen HTML tidak dipaparkan dalam templat Go dan bagaimana saya boleh membetulkannya?

DDD
Lepaskan: 2024-11-02 20:52:30
asal
679 orang telah melayarinya

Why are HTML comments not displayed in Go templates and how can I fix it?

Komen HTML Tidak Dipaparkan dalam Templat Go - Selesai

Dalam aplikasi Go, ulasan HTML tidak dipaparkan secara lalai apabila menggunakan templat HTML. Ini boleh menyebabkan isu untuk senario tertentu, seperti apabila menggunakan sintaks aliran kawalan tanpa kontena KnockoutJS. Untuk menangani masalah ini, templat.HTML boleh digunakan untuk mengekalkan ulasan HTML semasa pelaksanaan templat.

Satu kaedah untuk menggunakan templat.HTML ialah dengan mentakrifkan fungsi templat tersuai yang dipanggil safe(). Fungsi ini mengambil rentetan sebagai hujah dan mengembalikannya sebagai templat.HTML. Dengan menghantar ulasan HTML melalui fungsi safe(), mereka boleh ditandakan sebagai selamat dan tidak akan terlepas atau ditinggalkan semasa pemaparan templat.

Berikut ialah contoh:

<code class="go">import (
    "html/template"
    "os"
)

func main() {
    t := template.Must(template.New("").Funcs(template.FuncMap{
        "safe": func(s string) template.HTML { return template.HTML(s) },
    }).Parse(src))
    t.Execute(os.Stdout, nil)
}

const src = `<html><body>
{{safe "<!-- This is a comment -->"}}
<div>Some <b>HTML</b> content</div>
</body></html>`</code>
Salin selepas log masuk

Output:

<html><body>
<!-- This is a comment -->
<div>Some <b>HTML</b> content</div>
</body></html>
Salin selepas log masuk

Untuk menggunakan fungsi safe(), cuma ubah suai ulasan HTML dalam templat untuk memasukkan panggilan fungsi safe(), seperti:

<code class="html">{{safe "<!-- Some HTML comment -->"}}</code>
Salin selepas log masuk

Sebagai alternatif, gunakan paip operator:

<code class="html">{{"<!-- Some HTML comment -->" | safe}}</code>
Salin selepas log masuk

Perhatikan bahawa ulasan HTML yang mengandungi tanda petikan ('"') perlu dilepaskan, seperti di bawah:

<code class="html">{{safe "<!-- Some \"HTML\" comment -->"}}</code>
Salin selepas log masuk

Komen HTML bersyarat tidak disyorkan kerana ia boleh mengganggu dengan pelarian sensitif konteks bagi pakej html/templat.

Atas ialah kandungan terperinci Mengapa komen HTML tidak dipaparkan dalam templat Go dan bagaimana saya boleh membetulkannya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan