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
Lepaskan: 2024-12-25 05:59:12
asal
706 orang telah melayarinya

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
}
Salin selepas log masuk

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

{{ .Label() }}
Salin selepas log masuk

Penyelesaian:

Untuk memanggil kaedah daripada templat Go, tinggalkan kurungan sahaja :

{{ .Label }}
Salin selepas log masuk

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"))
}
Salin selepas log masuk

Output:

This is Bob
Salin selepas log masuk

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!

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