Go 如何将结构呈现为html模板?
我打算用数据呈现html,在呈现时,我不知道如何呈现其他文件的结构,返回到控制器上进行呈现 代码:Go 如何将结构呈现为html模板?,go,Go,我打算用数据呈现html,在呈现时,我不知道如何呈现其他文件的结构,返回到控制器上进行呈现 代码: packages controller type Index struct { Title string Body string } func IndexController(w http.ResponseWriter , r *http.Request){ if r.Method == "POST"{ data := &Index{ Title: "He
packages controller
type Index struct {
Title string
Body string
}
func IndexController(w http.ResponseWriter , r *http.Request){
if r.Method == "POST"{
data := &Index{
Title: "Hello",
Body: "Welcome to the WebGo.",
}
ff := renders.Sample{Temppath:"templates/index.tmpl",Data:data}
ff.Render(w)
我的渲染包:
package renders
import (
"html/template"
"log"
"net/http"
)
type Sample struct {
Temppath string
Data struct{} ## i don't know how to use pass value of package controller to renders package ?
}
func (obj Sample) Render(w http.ResponseWriter) error {
var indexTemplate = template.Must(template.ParseFiles(obj.Temppath))
if err := indexTemplate.Execute(w, obj.Data); err != nil {
log.Println(err)
return err
}
return nil
}
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="/static/js/sample.js"></script>
<title>{{.Title}}</title>
<style>
body {
font-family: sans-serif;
}
h1 {
background: #ddd;
}
#sidebar {
float: right;
}
</style>
</head>
<body>
<h1>{{.Title}}</h1>
<div id="sidebar">
{{block "sidebar" .}}
<ul>
</ul>
{{end}}
</div>
{{block "content" .}}
<div id="content">
{{.Body}}
</div>
{{end}}
</body>
</html>
{{.Title}
身体{
字体系列:无衬线;
}
h1{
背景:ddd;
}
#边栏{
浮动:对;
}
{{.Title}
{{块“侧边栏”}
{{end}
{{块“内容”}
{{.Body}
{{end}
如何将
类型索引结构
传递到呈现包以供使用indexTemplate.Execute(w,obj.Data)
在struct示例
中声明字段数据
为接口{
:
type Sample struct {
Temppath string
Data interface{}
}
然后,类型
Sample
也可以在其他控制器中用作将要传递到模板的任何数据的占位符。将data struct{}
更改为data interface{}
谢谢,修复,再次感谢,或者由您代替data struct{}
(或data interface{}
),您可以直接将创建的索引类型指定为Data controller.Index
)@IPutuSusila add作为asnwerI,我很高兴它有所帮助@好的,谢谢。