Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Anda Boleh Mengira Nilai dalam Templat HTML dengan Go?

Bagaimanakah Anda Boleh Mengira Nilai dalam Templat HTML dengan Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 05:37:02536semak imbas

How Can You Calculate Values in HTML Templates with Go?

Mengira Nilai dalam Templat HTML dengan Go

Apabila bekerja dengan templat HTML dalam Go, anda mungkin menghadapi situasi di mana anda perlu melakukan pengiraan dalam templat itu sendiri. Walau bagaimanapun, sintaks yang anda berikan, "{{ $length -1 }}", tidak akan berfungsi kerana templat tidak bertujuan untuk digunakan untuk logik yang kompleks.

Untuk mengira nilai dalam templat, anda mempunyai dua perkara utama pilihan:

  1. Lulus Keputusan Dikira sebagai Parameter:

Pendekatan pilihan dan lebih mudah ialah mengira nilai di luar templat dan menghantarnya sebagai parameter . Sebagai contoh, jika anda mempunyai peta dan ingin mengira indeks terakhir, anda boleh melakukannya dalam pengawal dan menghantar hasilnya kepada templat seperti ini:

func IndexHandler(w http.ResponseWriter, r *http.Request) {
    m := make(map[string]string)
    // ... populate map ...

    lastIdx := len(m) - 1
    data := struct {
        LastIdx int
    }{
        LastIdx: lastIdx,
    }

    t, err := template.ParseFiles("template.html")
    if err != nil {
        // Handle error
    }
    t.Execute(w, data)
}

Dalam templat, anda hanya boleh menggunakan {{.LastIdx}} untuk memaparkan indeks terakhir yang dikira.

  1. Daftar Fungsi Tersuai:

Jika anda memerlukan pengiraan yang lebih kompleks atau ingin melaksanakannya dalam templat, anda boleh mendaftarkan fungsi tersuai dan kemudian memanggilnya dari templat. Untuk berbuat demikian, gunakan templat.Taip FuncMap dan daftarkan fungsi seperti ini:

func init() {
    template.Funcs["subtractOne"] = func(x int) int {
        return x - 1
    }
}

Dalam templat, anda kemudian boleh memanggil fungsi seperti ini:

{{ $lastIdx := subtractOne (len .) }}
<p>The last index of this map is: {{ $lastIdx }} </p>

Ini akan tolak satu daripada panjang peta dan simpan hasilnya dalam pembolehubah $lastIdx.

Ingat bahawa templat bukanlah bahasa pengaturcaraan sepenuhnya dan tujuan utamanya adalah untuk membentangkan data. Logik kompleks harus dikendalikan di luar templat atau melalui fungsi tersuai.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengira Nilai dalam Templat HTML dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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