diff --git a/sui/core/page.go b/sui/core/page.go index 8680b3ea..8c13293b 100644 --- a/sui/core/page.go +++ b/sui/core/page.go @@ -76,24 +76,28 @@ func (page *Page) Data(request *Request) (Data, map[string]interface{}, error) { // Exec get the data func (page *Page) Exec(request *Request) (Data, error) { - if page.Codes.DATA.Code == "" { - return map[string]interface{}{}, nil + // Global data + data := map[string]interface{}{} + global := map[string]interface{}{} + var err error + if page.GlobalData != nil { + global, err = request.ExecString(string(page.GlobalData)) + if err != nil { + return nil, err + } } - data, err := request.ExecString(page.Codes.DATA.Code) + if page.Codes.DATA.Code == "" { + data["$global"] = global + return data, nil + } + + data, err = request.ExecString(page.Codes.DATA.Code) if err != nil { return nil, err } - // Global data - if page.GlobalData != nil { - global, err := request.ExecString(string(page.GlobalData)) - if err != nil { - return nil, err - } - data["$global"] = global - } - + data["$global"] = global return data, nil } diff --git a/sui/core/preview.go b/sui/core/preview.go index 721115e9..d415a7d3 100644 --- a/sui/core/preview.go +++ b/sui/core/preview.go @@ -25,7 +25,7 @@ func (page *Page) PreviewRender(referer string) (string, error) { // Get the data var data Data = nil - if page.Codes.DATA.Code != "" { + if page.Codes.DATA.Code != "" || page.GlobalData != nil { data, err = page.Exec(request) if err != nil { warnings = append(warnings, err.Error())