Function 如何组织Gin(GoLang)中特定端点的函数映射? TL;博士
我想知道如何组织go模板的函数映射,这些模板依赖于在被调用的特定端点中获得的数据 问题 我有一个主要的前端端点(对于CMS),它将抓取页面的slug,然后从模型中获取post数据。我还有一个模板包,它接受模型、post数据和gin上下文。 目前正在使用GoView。但是我将HTMLRender设置为每次点击页面时都会有一个新的ginview,这可能对性能没有好处,我想知道是否有更简洁的方法Function 如何组织Gin(GoLang)中特定端点的函数映射? TL;博士,function,go,templates,view,content-management-system,Function,Go,Templates,View,Content Management System,我想知道如何组织go模板的函数映射,这些模板依赖于在被调用的特定端点中获得的数据 问题 我有一个主要的前端端点(对于CMS),它将抓取页面的slug,然后从模型中获取post数据。我还有一个模板包,它接受模型、post数据和gin上下文。 目前正在使用GoView。但是我将HTMLRender设置为每次点击页面时都会有一个新的ginview,这可能对性能没有好处,我想知道是否有更简洁的方法 // Serve the front end website func (c *FrontendContr
// Serve the front end website
func (c *FrontendController) Serve(g *gin.Context) {
path := g.Request.URL.Path
post, err := c.models.Posts.GetBySlug(path)
if err != nil {
NoPageFound(g)
return
}
tf := templates.NewFunctions(g, c.models, &post)
c.server.HTMLRender = ginview.New(goview.Config{
Root: paths.Theme(),
Extension: config.Template["file_extension"],
Master: "/layouts/main",
Partials: []string{},
DisableCache: true,
Funcs: tf.GetFunctions(),
})
r := ResourceData{
Post: post,
}
g.HTML(200, config.Template["template_dir"] + "/" + post.PageTemplate, r)
}
模板
例如,一些模板功能包括获取文章的字段和作者,以及查看用户是否登录
func (t *TemplateFunctions) isAuth() bool {
...
}
还有一些模板函数没有绑定到gin.context
,例如获取资产路径
func (t *TemplateFunctions) assetsPath() string {
...
}
问题
- 是否有方法将依赖数据的函数与全局函数合并
- 有没有一种方法可以设置模板函数,而不必在每次点击页面时重新声明HTMLRender?还是有必要