Capturando a saída do modelo em Go
Em um modelo Go, capturar a saída de um submodelo ou atribuí-la diretamente a uma variável é não suportado por padrão. Isso pode ser conseguido, no entanto, registrando uma função personalizada e usando um buffer de bytes para receber o resultado do modelo.
Registro de função personalizada
Para capturar a saída do modelo, registre uma função com Template.Funcs() que recebe o nome do modelo como argumento e retorna a saída do modelo como uma string:
func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err }
Execução de modelo e captura de resultados
Execute o submodelo chamado 'my-template' usando Template.ExecuteTemplate() e atribua-o a uma variável:
{{$var := execTempl "my-template"}}
Saída Recuperação
Recupere a saída capturada e use-a conforme necessário:
See result: {{$var}}
Exemplo completo
var t *template.Template func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { panic(err) } } const tmpl = ` {{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
Saída:
See result: my-template content
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