在Go语言中使用HTML模板。

huangapple go评论115阅读模式
英文:

Html template use on golang

问题

抱歉,我只能提供中文翻译。以下是您要翻译的内容:

对不起,我是初学者,我阅读了Golang文档,但理解得不够好。
我有一个index.html文件:

<html>
<head>
</head>
<body>
<form action type="checkbox" name="test" value="A" {{.checked}}>
<input type="submit" value="save">
</body>
</html>

在main.go文件中,如果用户点击保存按钮,然后检查复选框,重定向到该页面并显示复选框已选中。

英文:

Sorry im beginner and i read golang.docs but didnt understand well.
i`ve : index.html:

&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action type=&quot;checkbox&quot; name=&quot;test&quot; value=&quot;A&quot; {{.checked}}&gt;
&lt;input type=&quot;submit&quot; value=&quot;save&quot;&gt;
&lt;/body&gt;
&lt;/html&gt;

in main.go
if user click save button then check checkbox redirect that page and show checkbox checked

答案1

得分: 1

你可以在map中发送变量。例如:

package main

import (
    "bytes"
    "fmt"
    "text/template"
)

func main() {
    t, _ := template.New("hi").Parse("Hi {{.name}}")
    var doc bytes.Buffer
    t.Execute(&doc, map[string]string{"name": "Peter"})
    fmt.Println(doc.String()) //Hi Peter
}
英文:

You could send variables in map. For example:

package main

import (
	&quot;bytes&quot;
	&quot;fmt&quot;
	&quot;text/template&quot;
)

func main() {
	t, _ := template.New(&quot;hi&quot;).Parse(&quot;Hi {{.name}}&quot;)
	var doc bytes.Buffer
	t.Execute(&amp;doc, map[string]string{&quot;name&quot;: &quot;Peter&quot;})
	fmt.Println(doc.String()) //Hi Peter
}

答案2

得分: 0

在Go代码中被定义。

请提供执行模板的Go代码片段,类似以下代码:

t, _ := template.ParseFiles(tmpl + ".html")
t.Execute(w, data) // data必须包含字段"checked"

或者

templates.ExecuteTemplate(w, tmpl+".html", data) // data必须包含字段"checked"

你可以将任何类型(interface{})作为"data"传递给执行模板的函数。通常情况下,它是一个结构体或者一个map[string]string

如何设置"checked"
可能在main.go的处理程序中根据提交的表单设置了"checked"。

阅读文档并更好地解释它。请参考文档获取更详细的信息。

英文:

The . is defined in go code.

Please provide the snippet of your go code where the template is executed, something like the following codes:

    t, _ := template.ParseFiles(tmpl + &quot;.html&quot;)
    t.Execute(w, data) // the data must feature the field &quot;checked&quot;

Or

    templates.ExecuteTemplate(w, tmpl+&quot;.html&quot;, data) // the data must feature the field &quot;checked&quot;

You can pass any type(interface{}) to a functions that execute a template as "data". Usually it is a Struct or a Map[string]string.

How to set the checked
Probably the "checked" is setted in the main.go at handler according to the posted form.

Read the docs and explain it better. Please

huangapple
  • 本文由 发表于 2014年12月22日 13:48:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/27597162.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定