如何直接在模板文件中访问结构切片元素键

时间:2018-03-31 02:50:02

标签: templates go

我正在加载一些模板文件并尝试使用我定义的一些结构编译它们。

以下示例正常运行。我想知道是否有更好的格式化 templateFile 以直接访问 config.Servers [1] .Ip1 而无需两套 {{}}

templateFile:     {{$ a:= index .Servers 1}} {{$ a.Ip1}}一些额外的文字

learn.go:

package main

import (
    "html/template"
    "os"
)

type Server struct {
    Ip1 string
    Ip2 string
}

type Configuration struct {
    Servers []Server
}

func main() {
    someServers := []Server{
        {
            Ip1: "1.1.1.1",
            Ip2: "2.2.2.2",
        },
        {
            Ip1: "3.3.3.3",
            Ip2: "4.4.4.4",
        },
    }
    config := Configuration{
        Servers: someServers,
    }

    tmpl, err := template.ParseFiles("./templateFile")
    if err != nil {
        panic(err)
    }
    err = tmpl.Execute(os.Stdout, config)
    if err != nil {
        panic(err)
    }

}

1 个答案:

答案 0 :(得分:1)

请参考: https://golang.org/pkg/html/template/

如果您想访问任何Struct变量,则必须在HTML模板中使用{{}}。