"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como passar dados para modelos incluídos no Go?

Como passar dados para modelos incluídos no Go?

Publicado em 2024-11-24
Navegar:975

How to Pass Data to Included Templates in Go?

Passando dados para modelos renderizados no Go

Os modelos In Go, incluindo outro modelo, é um processo simples usando o {{ template "include- nome do modelo" }} sintaxe. No entanto, às vezes é necessário passar dados adicionais para o modelo incluído.

Introduzindo a passagem dinâmica de parâmetros

Considere um cenário em que você deseja passar um número para um modelo , "image_row.html", que usa esse número para construir linhas dinamicamente. Isso requer passar o número como um argumento adicional para a invocação do modelo.

Função personalizada para passar vários argumentos

Como não há suporte integrado para passar vários argumentos para um modelo, você pode criar uma função personalizada para mesclar os argumentos em uma única fatia. Registre esta função com Funcs e use-a na invocação do modelo:

func args(vs ...interface{}) []interface{} { return vs }
t, err := template.New("t").Funcs(template.FuncMap{"args":args}).Parse...

Uso na invocação de modelo

Dentro do template principal, você pode passar os argumentos usando a função args:

{{ template "image_row" args . 5 }}

Acessando argumentos no modelo incluído

Em "image_row.html", você pode acessar os argumentos usando a função de índice integrada:

{{ define "image_row" }}
   To stuff here {{index . 0}} {{index . 1}}
{{ end }}

Essa abordagem permite transmitir dados dinâmicos para modelos renderizados, proporcionando maior flexibilidade no design de modelos e no tratamento de dados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3