Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk memanggil Kaedah Go dari Dalam Templat HTML?

Bagaimana untuk memanggil Kaedah Go dari Dalam Templat HTML?

Barbara Streisand
Barbara Streisandasal
2024-12-25 05:59:12710semak imbas

How to Call Go Methods from Within HTML Templates?

Mengakses Kaedah Go daripada Templat HTML

Dalam Go, templat ialah cara serba boleh untuk menjana kandungan HTML secara dinamik. Walau bagaimanapun, kaedah panggilan dari dalam templat kadangkala boleh menimbulkan cabaran.

Masalah:

Pertimbangkan struct Go berikut:

type Person struct {
  Name string
}

func (p *Person) Label() string {
  return "This is " + p.Name
}

Bagaimana boleh kaedah ini boleh diakses daripada templat HTML? Dalam templat, anda ingin menggunakan sintaks yang serupa dengan:

{{ .Label() }}

Penyelesaian:

Untuk memanggil kaedah daripada templat Go, tinggalkan kurungan sahaja :

{{ .Label }}

Kod Go berikut ditunjukkan ini:

package main

import (
    "html/template"
    "log"
    "os"
)

type Person string

func (p Person) Label() string {
    return "This is " + string(p)
}

func main() {
    tmpl, err := template.New("").Parse(`{{.Label}}`)
    if err != nil {
        log.Fatalf("Parse: %v", err)
    }
    tmpl.Execute(os.Stdout, Person("Bob"))
}

Output:

This is Bob

Dokumentasi menentukan bahawa anda boleh memanggil mana-mana kaedah yang mengembalikan satu nilai atau dua nilai, dengan syarat nilai kedua adalah ralat jenis. Dalam kes kedua, ralat dikembalikan jika ia bukan sifar dan pelaksanaan templat dihentikan.

Atas ialah kandungan terperinci Bagaimana untuk memanggil Kaedah Go dari Dalam Templat HTML?. 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