2017-05-24 62 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)