Variable de plantilla de Golang isset

He creado una función para verificar si una variable está definida:

fm["isset"] = func(a interface{}) bool {
        if a == nil || a == "" || a == 0 {
            fmt.Println("is not set")
            return false
        }
        fmt.Println("is set")
        return false
    }

tmpl :=  template.Must(template.New("").Funcs(fm).ParseFiles("templates/header.html"))

err := tmpl.ExecuteTemplate(w, "header", templateData)

En la plantilla tengo:

{{ if isset .Email }}
    email is set
{{ end }}

Esta función funciona si la variable está contenida por eltemplateData (que es una estructura personalizada que contiene un mapa y una cadena), pero me da un error si la variable no existe.

El error es:

executing "header" at <.Email>: can't evaluate field Email in type base.customData

En mi caso, "base.go" es el controlador y "customData" se define por:type customData struct{..}.

Quiero poder reutilizar plantillas y mostrar algunas secciones solo si algunas variables se envían desde el controlador. Alguna idea de cómo puedo implementar una variableisset verificar en el lado de la plantilla?

También intenté usar:{{ if .Email}} do stuff {{ end }} Pero esto también me da el mismo error.

¿Alguna idea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta