Let's say I have
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name } How can I use this method from a html/template ? I would need something like this in my template:
{{ .Label() }}
According to the documentation, you can call any method which returns one value (of any type) or two values if the second one is of type error . In the later case, Execute will return that error if it is non-nil and stop the execution of the template. Thanks, it works !
Just omit the parentheses and it should be fine. Example:
package main import ( "html/template" "log" "os" ) type Person string func (p Person) Label() string { return "This is " + string(p) } func main() { tmpl, err := template.New("").Parse(`{{.Label}}`) if err != nil { log.Fatalf("Parse: %v", err) } tmpl.Execute(os.Stdout, Person("Bob")) } According to the documentation, you can call any method which returns one value (of any type) or two values if the second one is of type error. In the later case, Execute will return that error if it is non-nil and stop the execution of the template.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With