2017-05-24 47 views
0

定義視圖模型我想定義視圖模型的結構,事情是這樣的:你如何去

type AdminView struct { 
    PageTitle string 
    UserName string 
    UserType string 
    Templates []Template 
    ... 
    OtherAttr Other 
} 

幫我整理模板和DTO更好,但都沒有效果很不錯所以遠。我想實現的是這樣的:

func adminViewHandler (w http.ResponseWriter, r *http.Request) { 
    data := processRequestData (r) // process request form data 
    view := AdminView {} 
    // then assign values to view 
    view.render(w) // similar to tmpl.Exec(w, data) 
} 

我想知道如果我在正確的軌道在使用上述方法渲染視圖引入更多的抽象上。我想知道人們如何在現實世界中用複雜的數據渲染複雜的視圖。

在此先感謝。

+1

你應該在一個時間只問一個* *的問題。第一個問題太廣泛了,主要是基於意見,所以我刪除了這部分。另請參閱[我應避免詢問什麼類型的問題?](https://stackoverflow.com/help/dont-ask)。 – Carpetsmoker

回答

1

你幾乎走上正軌。請記住,Go不是一種面向對象的語言,因此繼承(你試圖做的)並不是一個非常常見的模式。

相反,你會做的是使用模板,並通過視圖模型到模板:

view := AdminView{} 
... 
tmpl.Exec(w, view)