一、路由 s.BindHandler
s.BindHandler("/:name", func(r *ghttp.Request){
r.Response.Writeln("pattern: /:name match")
})
二、模板文件 默认为resource/template 文件夹
上一节我们配置了 静态文件夹 resource/xxx 两种解决方案
1 以静态文件夹为主采取 json访问接口方式 加载数据
这种模式配置好pear后 只要pear中有对应的静态文件就可以 通过json获取数据
返回json的写法 这里要注意 layui 默认data格式 {"code": 0,"count": 1000,"data": [{}}
s.BindHandler("/news/listjson", func(r *ghttp.Request) {
md := dao.DboLNewss.Ctx(r.Context())
newss, err := md.All()
if err == nil {
r.Response.WriteJson(g.Map{
"code": 0,
"msg": "",
"count": 1000,
"data": newss,
})
}
})
2 以模板文件夹template为主 采用混编gf 标签语言 加载数据
这种模式需要 在gf 的controller中写路由然后调用模板
s.BindHandler("/news/list", func(r *ghttp.Request) {
md := dao.DboLNewss.Ctx(r.Context())
newss, err := md.All()
if err == nil {
r.Response.WriteTpl("news/list.html", g.Map{
"ncount": 2,
"newss": newss})
}
})
此处的news/list.html 在 temple 文件夹中
数据用 gf 标签语言绑定
三、标签语言
{{range $key, $value := .newss}}
<tr>
<td>{{$value.Title}}</td>
<td>{{$value.ClassId}}</td>
<td>{{$value.CreatTime}}</td>
<td><a class="layui-btn layui-btn-xs" onclick="edit({{$value.NID}})" >编辑</a></td>
</tr>
{{end}}
补充 pear菜单配置有个 "openType": "_component",
这样 直接出来的页面不需要 引用 pear.css pear.js 直接用 比如 list.html
但是 list.html 弹出的 页面就需要 引用 样式和js 了