templates - 有没有办法列出使用过的变量?

标签 templates go go-templates

假设我有一个基本的 go 文本/模板:

{{.var}} is another {{.var2}}

我想获取模板中使用的变量名称的数组,以便能够在我传递给执行的数据中不可用时跳过执行,是否可以通过某种方式做到这一点?

因为我的数据不是结构而是映射,所以执行 .var 总是会返回一些东西:如果它不存在,当我希望在执行模板时出现错误时它会返回一个空字符串。

所以对于上面的例子,我希望得到:

[var var2]

最佳答案

如果未设置值,请使用返回错误的模板函数。像这样:

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
    },
}))

然后在你的模板中:

{{require .Value}}

http://play.golang.org/p/qZMBID7Y8L

关于templates - 有没有办法列出使用过的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552612/

相关文章:

C++20 NTTP 特化

java - 如何在 freemarker 模板中按索引获取列表项?

string - 如何检查字符串中的一个或多个符号

google-app-engine - 如何查询具有其祖先未知的键的实体?

mysql - 将 “SELECT *” 列(多于一个)读入 [][]string in go

转到模板结构

if-statement - Golang 模板变量 isset

templates - 在 Go 的 HTML 模板中遍历任意数量的嵌套结构 slice

c++ - 如何使用模板设置 union 字段

c++ - LNK2019错误未解析的外部符号