Beego框架学习---layout的使用
在管理系统中,管理菜单的界面是固定的,会变化的只是中间的部分。我就在想,是不是跟angular的“组件模块的router-outlet一样”每次只用修改中间的内容部分,菜单和导航栏不变。
果不其然,beego框架也是支持layout的设计。
首先,在views目录下创建一个
layout.html
,这个html文件中把整个的页面框架设计好,在需要替换的内容的地方写成{{.layoutContent}}<div> <!-- Content Header (Page header) --> {{.ContentHead}} <!-- Main content --> {{.LayoutContent }} </div>
然后再路由转到的controller的方法内,定义页面的布局和内容。
func (this *Usercontroller)Get() { this.Data["Title"] = "用户管理" this.Layout = "layout.html" this.LayoutSections = make(map[string]string) this.LayoutSections["CustomJs"] = "customjs/user.html" this.LayoutSections["CustomCss"] = "" this.LayoutSections["ContentHead"] = "contenthead2.html" this.LayoutSections["Menu"] = "menu.html" this.TplName = "user.html" this.Data["undesgin"], _ = mgo.Listuser()
此时,beego就会首先解析TplNames指定的文件,获取内容赋值给LayoutContent,然后最后渲染
layout.html
文件。展示user.html
页面