Jul*_*lhé 5 templates go go-templates
假设我有一个基本的 go 文本/模板:
{{.var}} is another {{.var2}}
Run Code Online (Sandbox Code Playgroud)
我想获得模板中使用的变量名称的数组,如果它们在我传递给执行的数据中不可用,则能够跳过执行,是否有可能以某种方式做到这一点?
由于我的数据不是结构而是映射,执行 .var 总是会返回一些东西:如果它不存在,它会在我希望在执行模板时出现错误时返回一个空字符串。
所以对于上面的例子,我希望得到:
[var var2]
Run Code Online (Sandbox Code Playgroud)
如果未设置值,请使用返回错误的模板 func。像这样的东西:
template.FuncMap(map[string]interface{}{
"require": func(val interface{}) (interface{}, error) {
if val == nil {
return nil, errors.New("Required value not set.")
}
return val, nil
},
}))
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中:
{{require .Value}}
Run Code Online (Sandbox Code Playgroud)
http://play.golang.org/p/qZMBID7Y8L
归档时间: |
|
查看次数: |
404 次 |
最近记录: |