From 5e3d930a890b38e855d2d2844c929a467d0dd8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=9B=BD=E6=9D=BE?= Date: Mon, 22 Jan 2018 16:48:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=AE=BE=E7=BD=AElayout?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/base.go | 7 +++++-- grabc.go | 8 +++++++- libs/template.go | 3 --- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/controllers/base.go b/controllers/base.go index 2ea6f67..7705631 100644 --- a/controllers/base.go +++ b/controllers/base.go @@ -134,8 +134,11 @@ func (this *BaseController) ShowHtml(tpl ...string) { this.Data["breadcrumbs"] = this.ShowBreadcrumbs() this.Data["menus"] = libs.ShowMenu(this.controllerName, this.actionName) - if len(libs.Template.Data) > 0 { - for name, value := range libs.Template.Data { + layoutData := this.GetSession("grabc_layout_data") + + if layoutData != nil { + d := layoutData.(map[string]interface{}) + for name, value := range d { if _, isExist := this.Data[name]; isExist { panic("设置layout数据失败,因为" + name + "已经存在") } diff --git a/grabc.go b/grabc.go index 8dc1d5c..079569f 100644 --- a/grabc.go +++ b/grabc.go @@ -76,7 +76,13 @@ func SetLayout(layoutName string, layoutPath string) { //设置grabc的模板的数据 func AddLayoutData(name string, value interface{}) { - libs.Template.Data[name] = value + if libs.BeegoC.GetSession("grabc_layout_data") == nil { + libs.BeegoC.SetSession("grabc_layout_data", make(map[string]interface{}, 0)) + } + + data := libs.BeegoC.GetSession("grabc_layout_data").(map[string]interface{}) + data[name] = value + libs.BeegoC.SetSession("grabc_layout_data", data) } //设置grabc模板的路径 diff --git a/libs/template.go b/libs/template.go index 9720a99..72808d9 100644 --- a/libs/template.go +++ b/libs/template.go @@ -5,15 +5,12 @@ var Template GrabcTemplate func init() { Template = GrabcTemplate{} - Template.Data = make(map[string]interface{}, 0) - } type GrabcTemplate struct { LayoutName string LayoutPath string ViewPath string - Data map[string]interface{} } func (this *GrabcTemplate) GlobalCss() string {