2015-06-11 21 views
2

docs不是特別有幫助,我想知道,如果結構在html/templates中,是否有任何方法可以在所有頁面中使用常量頁眉/頁腳?

{{header}} 

    {{content that always changes}} 

{{footer}} 

是golang實現的。

+2

如果您錯過了,請閱讀['text/template'](https://golang.org/pkg/text/template/)文檔。 –

+0

@TimCooper我錯過了:O – m0meni

+0

那麼使用命名模板會如何? '{{{template「name」}} \t具有指定名稱的模板將以零數據執行。 – m0meni

回答

1

使用text/template

  1. 代碼,以使它對標準輸出

    t := template.Must(template.ParseFiles("main.tmpl", "head.tmpl", "foot.tmpl")) 
    t.Execute(os.Stdout, nil) 
    
  2. main.tmpl:

    {{template "header" .}} 
    <p>main content</p> 
    {{template "footer" .}} 
    
  3. foot.tmpl:

    {{define "footer"}} 
    <footer>This is the foot</footer> 
    {{end}} 
    
  4. head.tmpl:

    {{define "header"}} 
    <header>This is the head</header> 
    {{end}} 
    

這將導致:

使用html/template將是極其相似。

+1

請注意,您可以將多個模板放在具有多個'define ... end'塊的同一個源文件中。 – Ezra

+0

我不是100%,但我認爲你必須使用'if ... else'這種混濁的水域。我的直覺是,這種邏輯應該放在渲染模板的代碼中,而不是模板本身。所以你可能會有'{{.RenderedPageContent}}'而不是'{{template .Page。 }}'? – Ezra

相關問題