Bagaimanakah saya boleh menghantar data sebagai hujah kepada templat yang disertakan dalam sistem templat Go?

DDD
Lepaskan: 2024-10-28 04:29:30
asal
617 orang telah melayarinya

How can I pass data as arguments to an included template in Go's templating system?

Melalui Data Antara Templat

Dalam sistem templat Go, mungkin perlu untuk menghantar data antara berbilang templat, terutamanya apabila menyertakan satu templat dalam yang lain. Timbul persoalan, "Bagaimanakah saya boleh menghantar data sebagai argumen kepada templat yang disertakan dan mengaksesnya dalam templat itu?"

Untuk mencapai ini, anda boleh menggunakan fungsi tersuai yang menggabungkan argumen ke dalam satu nilai hirisan. Dengan mendaftarkan fungsi ini, ia boleh digunakan dalam permohonan templat. Kod berikut menunjukkan cara ini dilakukan:

<code class="go">package main

import (
    "fmt"
    "html/template"
)

func main() {
    t, err := template.New("t").Funcs(template.FuncMap{
        "args": func(vs ...interface{}) []interface{} { return vs },
    }).Parse("{{ template \"image_row\" args . 5 }}")
    if err != nil {
        fmt.Println(err)
        return
    }

    err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil)
    if err != nil {
        fmt.Println(err)
        return
    }
}

// index.html
{{ template "image_row" . | 5 }}

// image_row.html
{{ define "image_row" }}
   To stuff here {{index . 0}} {{index . 1}}
{{ end }}</code>
Salin selepas log masuk

Dalam templat image_row, hujah boleh diakses menggunakan fungsi indeks terbina dalam. Contohnya, {{index. 0}} akan mengakses argumen pertama (indeks 0) yang diluluskan daripada templat index.html, dalam kes ini nombor 5.

Penyelesaian ini menyediakan cara yang serba boleh untuk menghantar dan mengakses data antara berbilang templat, membolehkan tersuai kefungsian dan penggunaan semula kod yang cekap.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar data sebagai hujah kepada templat yang disertakan dalam sistem 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!