关于template模版解析结构体方法的一些疑惑?
文中模版中解析结构体方法的代码如:
{{ RouteName2URL "articles.update" "id" .GetStringID }}
其中GetStringID
是结构体BaseModel
的方法,因为自己的一些失误,此前一直将该方法写成了指针方法:
func (m *BaseModel) GetStringID() string {
return types.Uint64ToString(m.ID)
}
因为这个原因导致了show.gohtml
一直无法解析出删除和编辑的按钮,其中.GetStringID
一直无法解析出正确的值所以无法显示。想请问下结构体方法
和结构体指针方法
为什么会导致模版解析不出?(自己的理解是应该没什么影响的)
另外还有一个情况就是当我写成结构体指针
的方法时,在如下代码却又能正常解析模版:
{{ range $key, $article := . }}
{{ $article.GetStringID }}
{{ end }}
就相当于切片类型的数据传入模版,模版可以解析出结构体的指针方法
这让我更加有点疑惑!请各位大佬指点下🙏
推荐文章: