pasando datos entre plantillas
en el sistema de plantillas de Go, puede ser necesario pasar datos entre múltiples plantillas, particularmente cuando incluye una plantilla dentro de otra. Surge la pregunta: "¿Cómo puedo pasar los datos como argumentos a una plantilla incluida y acceder a ella dentro de esa plantilla?"
para lograr esto, puede utilizar una función personalizada que fusione los argumentos en un solo valor de corte. Al registrar esta función, se puede usar dentro de la invocación de plantilla. El siguiente código demuestra cómo se hace esto:
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 }}
dentro de la plantilla Image_row, se puede acceder a los argumentos utilizando la función de índice incorporada. Por ejemplo, {{índice. 0}} accedería al primer argumento (índice 0) aprobado de la plantilla index.html, en este caso el número 5.
Esta solución proporciona una forma versátil de pasar y acceder a los datos entre múltiples plantillas, habilitando la funcionalidad personalizada y la reutilización de código eficiente.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3