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 {