在golang HTML模板中切换或if / elseif / else

我有这个结构:

const (

paragraph_hypothesis = 1<<iota

paragraph_attachment = 1<<iota

paragraph_menu = 1<<iota

)

type Paragraph struct {

Type int // paragraph_hypothesis or paragraph_attachment or paragraph_menu

}

我想以Type相关方式显示我的段落。

我发现的唯一解决方案是基于专用功能,例如在Go和nested中isAttachment进行测试:Type``{{if}}

{{range .Paragraphs}}

{{if .IsAttachment}}

-- attachement presentation code --

{{else}}{{if .IsMenu}}

-- menu --

{{else}}

-- default code --

{{end}}{{end}}

{{end}}

实际上,我有更多的类型,这使它变得更加奇怪,使带有IsSomething功能的Go代码和具有这些功能的模板都变得混乱{{end}}

什么是干净的解决方案?有一些switchif/elseif/else解决方案中去的模板?还是完全不同的方式来处理这些案件?

回答:

模板是无逻辑的。他们不应该具有这种逻辑。您可以拥有的最大逻辑是一堆if

在这种情况下,您应该这样做:

{{if .IsAttachment}}

-- attachment presentation code --

{{end}}

{{if .IsMenu}}

-- menu --

{{end}}

{{if .IsDefault}}

-- default code --

{{end}}

以上是 在golang HTML模板中切换或if / elseif / else 的全部内容, 来源链接: utcz.com/qa/428012.html

回到顶部