Ejemplo n.º 1
0
func (v *TemplateView) Render(c *gmvc.Context, name string, data interface{}) error {
	w := c.ResponseWriter
	defer func() {
		c.ResponseWriter = w
	}()

	b := newBuffer(c.ResponseWriter)
	c.ResponseWriter = b

	pc := &pageContext{
		Context: c,
		Data:    data,
		view:    v,
	}

	if err := v.render(pc, name); err != nil {
		return err
	}

	h := b.Header()
	if ct := h.Get("Content-Type"); ct == "" {
		h.Set("Content-Type", v.ContentType)
	}

	if err := b.flush(); err != nil {
		return err
	}

	return nil
}