7

在 Go 中使用 html/templates 可以执行以下操作:

<table class="table table-striped table-hover" id="todolist">
    {{$i:=1}}
    {{range .}}         
    <tr>
        <td><a href="id/{{.Id}}">{{$i}}</a></td>
        <td>{{.Title}}</td>
        <td>{{.Description}}</td>
        </tr>
        {{$i++}}

    {{end}}
</table>

每次我添加 $i 变量时,应用程序都会崩溃。

4

2 回答 2

15

在我的html 模板中:

<table class="table table-striped table-hover" id="todolist">
        {{range $index, $results := .}}         
        <tr>
            <td>{{add $index 1}}</td>
            <td>{{.Title}}</td>
            <td>{{.Description}}</td>
            </tr>
        {{end}}
    </table>

在 go 代码中,我编写了一个传递给 FuncMap 的函数:

func add(x, y int) int {
    return x + y
}

在我的处理程序中:

type ToDo struct {
    Id          int
    Title       string
    Description string
}

func IndexHandler(writer http.ResponseWriter, request *http.Request) {
    results := []ToDo{ToDo{5323, "foo", "bar"}, ToDo{632, "foo", "bar"}}
    funcs := template.FuncMap{"add": add} 
  temp := template.Must(template.New("index.html").Funcs(funcs).ParseFiles(templateDir + "/index.html"))
    temp.Execute(writer, results)
}
于 2012-12-31T20:31:45.377 回答
9

查看Variables部分text/template

http://golang.org/pkg/text/template/

range $index, $element := pipeline
于 2012-12-31T14:56:53.673 回答