使用golang模板进行最小化的差异化?

时间:2016-10-03 04:40:22

标签: go go-templates

我们说我有一个页面,它是一个标题和一个正文。在标题中是链接,然后单击正文更改,但标题仍然存在。 使用html/template库构建它很容易,但如果我只发送一个新页面(每次从数据库中获取标题中的信息),这似乎也是愚蠢的。如何根据我猜的url切换出身体模板。

这就是我所拥有的:

`

{{template "GlobalNav"}} 
 {{template "GroupHeader" .Header }} 
 {{ if eq .Active "" }}
 {{ template "GroupBody" .Body }}
 {{ else if eq .Active "papers" }}
 {{ template "GroupPapers" .Body }}
 {{ else if eq .Active "projects" }}
 {{ template "GroupProjects" .Body }}
 {{ end }}`

Server Side:

`http.HandleFunc("/g/", Groups)
http.HandleFunc("/g/papers", GroupsPapers)
http.HandleFunc("/g/projects", GroupsProjects)
func Groups() {
 header := fromDBHeader(id)
body := fromDBMain(id)
render Home template ...
}
func GroupsPapers() {
  header := fromDBHeader(id)
   body := fromDBPapers(id)
   render Paper template ...
   }
func GroupsProjects() {
header := fromDBHeader(id)
body := fromDBProjects(id)
render Project template ...
}

`

是时候换一些JS吗?

1 个答案:

答案 0 :(得分:0)

尝试这种方式将html文件放到html文件夹中添加html和js文件。

func webServer() {
http.Handle(
    "/",
    http.StripPrefix(
        "/",
        http.FileServer(http.Dir("html")),
    ),
)
http.ListenAndServe(":9000", nil)

}

并在http://localhost:9000/

下浏览它