передача данных между шаблонами
в системе шаблона Go, может потребоваться передавать данные между несколькими шаблонами, особенно когда включение одного шаблона в другой. Возникает вопрос: «Как я могу передавать данные в качестве аргументов в включенный шаблон и получить доступ к нему в этом шаблоне?»
для достижения этого вы можете использовать пользовательскую функцию, которая объединяет аргументы в одно значение среза. Зарегистрировав эту функцию, ее можно использовать в рамках вызова шаблона. Следующий код демонстрирует, как это сделано:
package main
import (
"fmt"
"html/template"
)
func main() {
t, err := template.New("t").Funcs(template.FuncMap{
"args": func(vs ...interface{}) []interface{} { return vs },
}).Parse("{{ template \"image_row\" args . 5 }}")
if err != nil {
fmt.Println(err)
return
}
err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil)
if err != nil {
fmt.Println(err)
return
}
}
// index.html
{{ template "image_row" . | 5 }}
// image_row.html
{{ define "image_row" }}
To stuff here {{index . 0}} {{index . 1}}
{{ end }}
В шаблоне Image_row аргументы можно получить с помощью встроенной функции индекса. Например, {{index. 0}} будет получить доступ к первым аргументам (индекс 0), переданный из шаблона index.html, в данном случае число 5.
это решение предоставляет универсальный способ передачи и доступа между несколькими шаблонами, обеспечивая пользовательскую функциональность и эффективное повторное использование кода.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3