1
resposta

Existe uma forma de passar uma propriedade pra esse template?

Tipo uma prop do react hahahaha exemplificando melhor, imagina que tenho esse menu aqui

{{define "_menu"}}
    <nav>
        <a href"/lojinha">Link pra minha lojinha</a>
    </nav>
{{end}}

Porem sla em outra pagina eu uso esse mesmo menu com esse mesmo template porem em /lojinha eu nao quero ir pra /lojinha e sim pra home algo como

{{define "_menu"}}
    <nav>
        <a href"/">Link pra minha home</a>
    </nav>
{{end}}

Porem reaproveito o componente, somente mudo o link e o texto dentro da ancora, e onde for usar nas minhas paginas eu faria algo como

{{template "_head" "link=""" "text="""}}

Exemplo ficiticio mesmo, so queria saber se tem como/ faz sentido

1 resposta

Olá, Hiago!

Sim, é possível passar propriedades para templates no Go. No seu exemplo, você pode criar um template que recebe as propriedades "link" e "text" e utiliza essas propriedades para renderizar o menu.

Veja como ficaria o código do template "_menu":

{{define "_menu"}}
    <nav>
        <a href="{{.link}}">{{.text}}</a>
    </nav>
{{end}}

E para utilizar esse template em diferentes páginas, você pode passar as propriedades através do comando template:

{{template "_menu" .}}

Dessa forma, você pode reutilizar o mesmo template em diferentes páginas, apenas mudando o valor das propriedades "link" e "text". Por exemplo:

{{template "_menu" . | set "link" "/" | set "text" "Link pra minha home"}}

Assim, o link e o texto dentro da âncora serão atualizados para a página desejada.

Espero ter ajudado! Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software