比方说,我有
type Person struct {
Name string
}
func (p *Person) Label() string {
return "This is " + p.Name
}
我怎么可以用这种方法从一个html /模板? 我需要这样的事情在我的模板:
{{ .Label() }}
比方说,我有
type Person struct {
Name string
}
func (p *Person) Label() string {
return "This is " + p.Name
}
我怎么可以用这种方法从一个html /模板? 我需要这样的事情在我的模板:
{{ .Label() }}
只是省略括号,它应该是罚款。 例:
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"))
}
根据文档 ,则可以调用它返回一个值(任何类型),或两个值如果第二个是类型的任何方法error
。 在后一种情况下, Execute
将返回错误,如果它是非零和停止模板的执行。
你甚至可以传递参数的功能类似如下
type Person struct {
Name string
}
func (p *Person) Label(param1 string) string {
return "This is " + p.Name + " - " + param1
}
然后在模板写
{{with person}}
{{ .Label "value1"}}
{{end}}
假设人在模板传递给模板类型的人的变量。