我目前正在使用虹膜Web框架,并且由于无法在问题跟踪器上提问并且社区聊天已结束,因此我在此提出这一要求是希望有人能帮助我。
我需要将数据传递给c.Render函数
我有一个处理程序,用于检查用户是否已登录。如果未记录,则应在html页面上添加一个额外的按钮
iris.Use(userHandler{})
type userHandler struct{
Allow bool
}
func (u userHandler) Serve(c *iris.Context) {
...
if isLogged {
// When I call from another middleware (c.Next) c.Render it should know that the user is logged in
}
c.Next()
}
那么是否可以向c.Render函数添加一些默认数据?
最佳答案
// retrieve local storage or previous handler,
// this is how handlers can share values, with the context's Values().
logged := ctx.Values().Get("logged")
// set template data {{.isLogged}}
ctx.ViewData("isLogged", logged)
// and finally, render the mypage.html
ctx.View("mypage.html")
可以通过以下方式将
"logged"
设置为您的中间件/任何以前的处理程序:ctx.Values().Set("logged", false)
所有这些都在示例中进行了描述,欢迎您浏览其中的一些示例:https://github.com/kataras/iris/tree/master/_examples
编码愉快!