golang 获取模板的内容
2018年8月2日
在日常开发中,我们很多时候,需要动态的在一个页面中加入另外页面的内容,例如ajax 加入的是一块用户信息,带格式的,也许你会用ajax获取用户的信息到页面上进行拼装,用js拼装页面,html都写到页面上啦,是不是很难看!
所以这个时候,我们ajax返回的是html页面,直接在ajax中把这个页面填充到当前页面的位置多好啦,多个页面引用的时候,多方便,不用js拼装,用php的时候,做这个非常方便,可以ajax的接口返回html,有函数自动页面和程序进行渲染,但到了golang,没有找到相应的方法!后来想到goang一切皆接口,那输出也是接口,所以,我就封装了输出,然后拿输出值,代码如下:
定义一个结构体,并事项Write接口,golang template 输出就放到了Write
1 2 3 4 5 6 7 8 |
type NewWrite struct { Data []byte } func (nw *NewWrite) Write(p []byte) (n int, err error) { nw.Data = append(nw.Data, p...) return len(p), nil } |
下边是golang 模板中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 |
tpl, err := template.ParseFiles("views/func/localdesc.html") if err != nil { w.Write([]byte(err.Error())) return } render := make(map[interface{}]interface{}) nw := new(NewWrite) tpl.Execute(nw, render) m := make(map[string]interface{}) m["localdesc"] = string(nw.Data) tools.Ajax(w, r, 1, "OK", m) |