para - plantillas django
En las plantillas de Go, accediendo al canal principal/global dentro del rango (1)
Usando la variable $ (recomendado)
De la documentación del text/template del paquete:
Cuando comienza la ejecución, $ se establece en el argumento de datos que se pasó a Ejecutar, es decir, al valor inicial del punto.
Como @Sandy señala, por lo tanto, es posible acceder a la Ruta en el ámbito externo usando $.Path
.
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Usando una variable personalizada (respuesta antigua)
Encontré una respuesta pocos minutos después de la publicación.
Al usar una variable, se puede pasar un valor al range
alcance:
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
¿Es posible, dentro de una {{range pipeline}} T1 {{end}}
en el paquete de text/template
para acceder al valor de las tuberías antes de la acción de rango, o la tubería principal / global aprobada como argumento para Ejecutar?
Ejemplo de trabajo que muestra lo que trato de hacer:
package main
import (
"os"
"text/template"
)
// .Path won''t be accessible, because dot will be changed to the Files element
const page = `{{range .Files}}<script src="{{html .Path}}/js/{{html .}}"></script>{{end}}`
type scriptFiles struct {
Path string
Files []string
}
func main() {
t := template.New("page")
t = template.Must(t.Parse(page))
t.Execute(os.Stdout, &scriptFiles{"/var/www", []string{"go.js", "lang.js"}})
}